BitBucket API 下载 src 文件 zip 问题

BitBucket API download src file zip issue

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

我可以通过 link:

中的用户登录详细信息下载文件
https://{user}:{pass}@bitbucket.org/{owner_name}/{repository}/get/master.zip

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

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

总的来说,如果您想从存储库访问 src 文件,此方法是最好且唯一的方法。

我一直在使用此功能从 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);
}