2013-07-16 29 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

这不是对最初问题的回答,而是对另一个答案的评论。请重新张贴作为对违规答案的评论(或附加到问题本身)。 –