Autor Zpráva
slovakCZ
Profil
Ahoj,

řeším problém, jak stáhnout privátní repozitář z bitbucket.org a následně jej na servru rozbalit (to rozbalení už není problém, jelikož to je zip). Na stackoverflow jsem narazil na někoho, kdo měl stejný problém a nejspíše se to vyřešilo tak, že změnil heslo tak, aby neobsahovalo NE-alfanumerické znaky (což mi nepomohlo, moje heslo obsahuje jen písmena).

Řešili to zde:
stackoverflow.com

a jak se v dotazu píše, tak toto funguje bez problémů:
curl --digest --user user:pass https://bitbucket.org/user/repo/get/tip.zip -o test.zip

toto také bez problémů:
<?php exec("curl --digest --user user:pass https://bitbucket.org/user/repo/get/tip.zip -o test.zip");

ale povolit fci exec se mi moc nechce.

Pomocí CURLu to vypadá takto:
<?php
$user = 'login';
$pass = 'heslo';
$repo = 'nazev_repozitare';

$out = fopen('test.zip', 'w+');
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
curl_setopt($ch, CURLOPT_USERPWD, "$user:$pass");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FILE, $out);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_NOBODY, false);
curl_setopt($ch, CURLOPT_URL, "https://bitbucket.org/$user/$repozitar/get/tip.zip");
curl_exec($ch);

Do stejné složky, ve které je skript by to mělo stáhnout soubor test.zip. Ten se vytvoří, ale jeho obsah je HTML kód přihlašovací stránky bitbucket.org.

Nenapadá nékoho řešení jak problém obejít? Tento problém nastává jen u privátních repozitářů (public jsou stáhnout bez problémů). Očividně bude problém někde při tom přihlašování.


Děkuji za rady.


Tom
ShiraNai7
Profil
slovakCZ:
1) Předpokládám, že $repo na začátku a $repozitar u konce je jen překlep v ukázce zde na diskusi.
2) Zkoušel jsi vyhodit všechny nastavení, které vyloženě nepotřebuješ? (returntransfer - proč, když se zapisuje do souboru?, curlopt_nobody - proč? false je výchozí)
3) Jen poznámka - lze použít 1 volání curl_setopt_array() namísto spoustu curl_setopt()
slovakCZ
Profil
ShiraNai7:
Díky za odpověď.


1) ano máš pravdu. Je to překlep, zde chybu nehledejme
2) ano, zkoušel jsem dávat pryč postupně nastavení ale výsledek byl většinou takový, že se stáhl prázdný soubor (který se přejmenoval na tip.zip. Velikost 0kb)
3) to jsem nevěděl, vyzkouším o víkendu.


Díky,

T.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: