BitBucket API下载src文件的zip问题

时间:2015-05-13 01:39:59

标签: php zip gzip bitbucket-api

我正在连接BitBucket API,并希望能够将存储库的zip文件下载到服务器。由于存储库是私有的,因此需要用户访问。

我可以通过链接中的用户登录详细信息下载文件:

https://{user}:{pass}@bitbucket.org/{owner_name}/{repository}/get/master.zip

但是我希望能够通过API最有可能通过cURL或任何其他方式使用访问令牌来下载文件。

2 个答案:

答案 0 :(得分:1)

我一直在使用此功能从bitbucket下载存储库:

function download($url, $destination) {
    try {
        $fp = fopen($destination, "w");
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
        curl_setopt($ch, CURLOPT_USERPWD, USERNAME . ":" . PASSWORD);
        curl_setopt($ch, CURLOPT_FILE, $fp);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($ch, CURLOPT_TIMEOUT, 30);
        $resp = curl_exec($ch);

        if(curl_errno($ch)){
            throw new Exception(curl_error($ch), 500);
        }

        $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        if ($status_code != 200) {
            throw new Exception("Response with Status Code [" . $status_code . "].", 500);
        }
    }
    catch(Exception $ex) {
        if ($ch != null) curl_close($ch);
        if ($fp != null) fclose($fp);
        throw new Exception('Unable to properly download file from url=[' + $url + '] to path [' + $destination + '].', 500, $ex);
    }
    if ($ch != null) curl_close($ch);
    if ($fp != null) fclose($fp);
}

答案 1 :(得分:0)

我发现通过使用ssh克隆存储库非常有效。通过生成ssh密钥然后通过对Bitbucket API ssh-key执行POST,我可以使用git命令而不受任何限制。我还必须允许.ssh / known_hosts文件中的Bitbucket.org才能访问。

总的来说,如果你想从存储库访问src文件,这种方法是最好的方法。