2013-07-16 41 views

回答

28

爲了在命令行下載私人到位桶倉庫的壓縮副本,使用以下命令:

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,以便以您選擇的壓縮格式下載存儲庫。

+4

我試過'捲曲--digest --user https://bitbucket.org/ / /下載/ -o '從下載下載區域,但它不起作用。任何想法爲什麼不呢? –

+0

工作就像一個魅力對我來說。謝謝!現在我爲我的網站創建了一個自動更新腳本! – alexander7567

+1

@FaheemMitha,要從下載區下載,需要添加'-L'選項,如下所示:'curl -L --digest --user https://bitbucket.org/ //downloads/ -o ' – user1027169

29

就我個人而言,我不想把我的密碼放到我的腳本中來完成。因此,關鍵是要運行下面的命令,將你的公鑰到您的到位桶帳戶後:

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 
+2

這只是一種方式,除非您不關心安全性,否則使用明文密碼進行身份驗證的任何其他方式都是錯誤的。 – thomas

2

GrowlTigers回答是偉大的,只是一個更新:用wget的,似乎現在的工作,也:

wget --user=<username> --password='<password>' https://bitbucket.org/<user>/<repo>/get/<filename>.tar.gz 
6

對於那些誰想要從bitbucket上的私人回購下載單個文件,我已經嘗試了上述但沒有工作。最後我得到了它與下面的命令工作:

​​
+2

這也適用於我,雖然我更喜歡使用'--ask-password'而不是'--password = ',以免我的密碼可見和/或以純文本的形式存儲在任何地方。 – Jonny

9

的--digest標誌是爲了您的安全,並強烈推薦。它完成身份驗證,以便您的用戶名和密碼不會以明文形式發送。

這是不正確的。

Bitbucket專門使用TLS,因此在任何時候任何事情都不會以明文形式通過網絡。因此,摘要對基本身份驗證沒有任何好處。事實上,考慮到摘要是由服務器啓動的,您需要額外的服務器往返請求服務器提供的隨機數。

自從我們幾年前停止提供未加密的HTTP訪問以來,我們對摘要的使用一直是多餘的並且不推薦使用,因爲@GrowlTiger建議使用基於捲曲的腳本來執行--digest

事實上,我們即將在5月1日關閉Digest,之後curl --digest將停止工作。

更多信息,可以發現:https://blog.bitbucket.org/2015/04/03/fare-thee-well-digest-access-authentication/

+0

這不是對最初問題的回答,而是對另一個答案的評論。請重新張貼作爲對違規答案的評論(或附加到問題本身)。 –