我们想使用mercurial进行Web开发,但我们不能(也不想)在共享主机上安装mercurial。我们尝试使用wget如上所述here,但我得到401错误。 凭据和链接是正确的(为安全起见而进行了修改)。
有没有办法从命令行下载源?
这个错误还是我做错了什么?
以下回复:
$ wget _http://xxxx:yyyyyyy@bitbucket.org/username/repo/get/be51983f6357.zip
--2011-10-31 00:26:50--
http://username:password@bitbucket.org/username/repo/get/be51983f6357.zip
Resolving bitbucket.org... 207.223.240.182, 207.223.240.181
Connecting to bitbucket.org|207.223.240.182|:80... connected.
HTTP request sent, awaiting response...
301 Moved Permanently Location: https://bitbucket.org/username/repo/get/be51983f6357.zip [following]
--2011-10-31 00:26:51--
https://bitbucket.org/username/repo/get/get/be51983f6357.zip
Connecting to bitbucket.org|207.223.240.182|:443... connected.
HTTP request sent, awaiting response...
401 UNAUTHORIZED Authorization failed.
Thanx寻求帮助...我将http更改为https和用户user&密码属性:
浏览器工作正常,Wget没有......
$ wget --verbose --user=XXXXX --password=YYYY https://bitbucket.org/ekku/REPO/get/aabbccddeee.zip
--2011-10-31 18:27:10-- https://bitbucket.org/ekku/REPO/get/aabbccddeee.zip
Resolving bitbucket.org... 207.223.240.182, 207.223.240.181
Connecting to bitbucket.org|207.223.240.182|:443... connected.
HTTP request sent, awaiting response... 401 UNAUTHORIZED
Failed writing HTTP request: Bad file descriptor.
Retrying.
我也试过curl,但是我收到错误信息: 禁止的(403) CSRF验证失败。请求中止。
答案 0 :(得分:8)
我使用卷曲:
curl --digest --user username:password https://bitbucket.org/user/repo/get/tip.zip -o test.zip
来自Bitbucket的回答:Issue #3225 - Commanline download compressed tip
嗨Esa,我们实际上不支持下载源包的基本身份验证。您需要使用摘要身份验证。另外,根据我的理解,wget的摘要auth实现有一个错误。您可以将curl与--digest标志和-o标志一起使用来指定输出文件。干杯,迪伦
答案 1 :(得分:0)
你不应该在http
上使用bitbucket;始终使用https
。这应该摆脱你所看到的额外重定向。
还可以使用命令行选项--user
和--password
来指定wget
的身份验证; SSL可能不允许向URL添加用户和密码,因为服务器部分(://
和下一个/
之间)以纯文本形式发送到服务器。