Сжатый совет Wget от Bitbucket (mercurial)

Мы хотели бы использовать mercurial для веб-разработки, но не можем (и не хотим) устанавливать mercurial на общий хост. Мы пытаемся использовать wget, как указано здесь , но получаю ошибку 401. Учетные данные и ссылка верны (изменены в целях безопасности).

Есть ли способ загрузить исходный код из командной строки?

Это баг или я что-то не так делаю?

Ответ ниже:

$ wget _http://xxxx:[email protected]/username/repo/get/be51983f6357.zip 
--2011-10-31 00:26:50--
http://username:[email protected]/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.

Возьмите 2:

Спасибо за помощь... я изменил http на https и атрибуты пользователя и пароля пользователя:

Браузер работает нормально, 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.

Возьмите 3:

Я также пробовал curl, но получаю сообщение об ошибке: Forbidden (403) Проверка CSRF не удалась. Запрос прерван.


person Esa    schedule 31.10.2011    source источник
comment
Попробуйте нажать URL-адрес HTTPS напрямую. вы нажимаете HTTP, и wget, скорее всего, НЕ переносит учетные данные, встроенные в URL, через перенаправление.   -  person Marc B    schedule 31.10.2011
comment
Вместо этого используйте параметры командной строки --user и --password.   -  person Laurens Holst    schedule 31.10.2011
comment
У меня это работает с curl: curl --digest --user username:password bitbucket.org /user/repo/get/tip.zip -o test.zip Ответ от bitbucket:bitbucket.org/site/master/issue/3225/ Привет, Эса! На самом деле мы не поддерживаем базовую аутентификацию для загрузки пакетов с исходным кодом. Вам нужно использовать дайджест-аутентификацию. Кроме того, насколько я понимаю, у wget есть ошибка с реализацией дайджест-аутентификации. Вы можете использовать curl с флагом --digest и флагом -o, чтобы указать выходной файл. Привет, Дилан   -  person Esa    schedule 02.11.2011


Ответы (2)


У меня это работает с завитком:

curl --digest --user username:password https://bitbucket.org/user/repo/get/tip.zip -o test.zip    

Ответ от Bitbucket: Ошибка № 3225 — Сжатый совет по загрузке командной строки

Привет, Эса. На самом деле мы не поддерживаем базовую аутентификацию для загрузки пакетов с исходным кодом. Вам нужно использовать дайджест-аутентификацию. Кроме того, насколько я понимаю, у wget есть ошибка с реализацией дайджест-аутентификации. Вы можете использовать curl с флагом --digest и флагом -o, чтобы указать выходной файл. Привет, Дилан

person Esa    schedule 01.11.2011

Вы не должны использовать битбакет поверх http; всегда используйте https. Это должно избавиться от дополнительного перенаправления, которое вы видите.

Также используйте параметры командной строки --user и --password, чтобы указать аутентификацию для wget; SSL, вероятно, не позволяет добавить пользователя и пароль к URL-адресу, потому что серверная часть (между :// и следующим /) отправляется на сервер в виде простого текста.

person Aaron Digulla    schedule 31.10.2011