我正在編寫腳本以輕鬆部署應用程序。該應用程序的代碼存儲在專用的BitBucket存儲庫中。使用http身份驗證下載私人BitBucket存儲庫zip文件
我想能夠下載提交的zip文件。我已經試過認證具有以下代碼:
https://user:[email protected]/user/repo/get/commit.zip
然而,而不是實現它重定向到到位桶登錄頁面的任務。
我正在編寫腳本以輕鬆部署應用程序。該應用程序的代碼存儲在專用的BitBucket存儲庫中。使用http身份驗證下載私人BitBucket存儲庫zip文件
我想能夠下載提交的zip文件。我已經試過認證具有以下代碼:
https://user:[email protected]/user/repo/get/commit.zip
然而,而不是實現它重定向到到位桶登錄頁面的任務。
您正在使用的工具是否支持URL中的基本身份驗證憑據? Curl request with digest auth in PHP for download Bitbucket private repository強烈暗示:
curl --user user:pass https://bitbucket.org/user/repo/get/commit.zip >commit.zip
的作品。
爲了在命令行下載私人到位桶倉庫的壓縮副本,使用以下命令:
curl --digest --user <username>:<password> https://bitbucket.org/<username>/<repository>/get/<branchname>.zip -o <branchname>.zip
其中<username>
和<password>
是到位桶帳戶名和密碼,<repository>
是回購名稱和<branchname>
是分支。如果您寧願下載特定提交,請使用提交的SHA-1哈希替代<branchname>.
--digest
標記用於保護您的數據,並強烈建議您使用。它完成身份驗證,使您的用戶名和密碼是而不是明確發送。 -o
標誌將curl命令的輸出作爲文件發送到磁盤,而不是通過終端屏幕進行流式傳輸。
注:到位桶的認證方案不兼容wget.
這就是爲什麼你必須使用curl.
對於公共到位桶儲存庫中的命令:
curl https://bitbucket.org/<username>/<repository>/get/<branchname>.zip -o <branchname>.zip
或者交替,你可能使用wget
作爲公共存儲庫,因爲不需要驗證:
wget https://bitbucket.org/<username>/<repository>/get/<branchname>.zip
除了.zip
格式之外,您可以下載.gz
和.bz2
風味的存儲庫。只需將上面代碼中的.zip
替換爲.gz
或.bz2
,以便以您選擇的壓縮格式下載存儲庫。
就我個人而言,我不想把我的密碼放到我的腳本中來完成。因此,關鍵是要運行下面的命令,將你的公鑰到您的到位桶帳戶後:
git archive --remote=ssh://[email protected]/your_bitbucket_username/your_repository.git --format=zip --output="name_of_your_desired_zip_file.zip" master
我有我的系統上有多個按鍵,如果你也這樣做,你將要在其中創建一個配置文件,您的〜/ .ssh目錄指定爲特定的密鑰使用bitbucket連接。
的〜/ .ssh/config中
Host bitbucket.org
StrictHostKeyChecking no
IdentityFile /home/me/.ssh/my_private_key
這只是一種方式,除非您不關心安全性,否則使用明文密碼進行身份驗證的任何其他方式都是錯誤的。 – thomas
GrowlTigers回答是偉大的,只是一個更新:用wget的,似乎現在的工作,也:
wget --user=<username> --password='<password>' https://bitbucket.org/<user>/<repo>/get/<filename>.tar.gz
對於那些誰想要從bitbucket上的私人回購下載單個文件,我已經嘗試了上述但沒有工作。最後我得到了它與下面的命令工作:
這也適用於我,雖然我更喜歡使用'--ask-password'而不是'--password =
的--digest標誌是爲了您的安全,並強烈推薦。它完成身份驗證,以便您的用戶名和密碼不會以明文形式發送。
這是不正確的。
Bitbucket專門使用TLS,因此在任何時候任何事情都不會以明文形式通過網絡。因此,摘要對基本身份驗證沒有任何好處。事實上,考慮到摘要是由服務器啓動的,您需要額外的服務器往返請求服務器提供的隨機數。
自從我們幾年前停止提供未加密的HTTP訪問以來,我們對摘要的使用一直是多餘的並且不推薦使用,因爲@GrowlTiger建議使用基於捲曲的腳本來執行--digest
。
事實上,我們即將在5月1日關閉Digest,之後curl --digest
將停止工作。
更多信息,可以發現:https://blog.bitbucket.org/2015/04/03/fare-thee-well-digest-access-authentication/
這不是對最初問題的回答,而是對另一個答案的評論。請重新張貼作爲對違規答案的評論(或附加到問題本身)。 –
我試過'捲曲--digest --user: https://bitbucket.org/ / /下載/ -o '從下載下載區域,但它不起作用。任何想法爲什麼不呢? –
工作就像一個魅力對我來說。謝謝!現在我爲我的網站創建了一個自動更新腳本! – alexander7567
@FaheemMitha,要從下載區下載,需要添加'-L'選項,如下所示:'curl -L --digest --user: https://bitbucket.org/ //downloads/ -o ' –
user1027169