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);
}
我正在连接到 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);
}