1

Я хочу загрузить файл на сервер WebDAV в командной строке Linux. Стандартная рекомендация для этого - использовать curl следующим образом:

curl -u mail_address:password -T filename.ext https://my_server.com/dav/filename.ext

Когда я выполняю эту команду, она показывает мне знак «больше» в командной строке, как будто моя команда была неполной, загрузка не происходит:

$ curl -u mail_address:password -T filename.ext https://my_server.com/dav/filename.ext
$ >

Тем не менее, это не говорит мне, что я должен здесь напечатать, и нет размещения в Интернете (например, есть ли способ загрузки в хранилище box.com через командную строку?) когда-либо упоминал, что после этой команды вы должны набрать некоторые дополнительные вещи. Любые идеи, как это исправить? mail_address и пароль относятся к существующей учетной записи, а filename.ext ссылается на существующий файл на моем компьютере.

PS

  • Убунту 14.04
  • curl 7.35.0 (x86_64-pc-linux-gnu) libcurl/7.35.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 librtmp/2.3

1 ответ1

1

Могу поспорить, что в вашем пароле есть кавычка (' или "). Bash считает, что вы начали многострочную строку / кавычку, поэтому выдает приглашение $PS2 во второй строке, которое обычно > .

Убедитесь, что все ваши аргументы правильно экранированы.

Пример:
Если ваш пароль $jkl;'" , то вы можете экранировать его двойными кавычками, такими как "\$jkl;'\"" .

Кроме того, вы можете запустить вашу команду следующим образом:

curl -u mail_address -T filename.ext https://dav.box.com/dav/filename.ext

Затем curl предложит вам ввести пароль примерно так:

deltik@node51 [~]$ curl -u mail_address -T filename.ext https://dav.box.com/dav/filename.ext
Enter host password for user 'mail_address':

Документация:

-u , --user <user:password>

Укажите имя пользователя и пароль, которые будут использоваться для аутентификации сервера. Переопределяет -n , --netrc и --netrc-optional .

Если вы просто укажете имя пользователя, curl запросит пароль.

Имя пользователя и пароли разделены на первое двоеточие, что делает невозможным использование двоеточия в имени пользователя с этой опцией. Может, пароль еще.

При использовании Kerberos V5 с сервером на базе Windows вы должны включить имя домена Windows в имя пользователя, чтобы сервер мог успешно получить билет Kerberos. Если вы этого не сделаете, то первоначальное подтверждение аутентификации может завершиться неудачей.

При использовании NTLM имя пользователя может быть указано просто как имя пользователя без домена, если, например, в вашей настройке есть один домен и лес.

Чтобы указать имя домена, используйте либо имя для входа в систему нижнего уровня, либо UPN (основное имя пользователя). Например, EXAMPLE\user и user@example.com соответственно.

Если вы используете двоичный файл curl с включенным SSPI в Windows и выполняете аутентификацию Kerberos V5, Negotiate, NTLM или Digest, вы можете указать curl выбрать имя пользователя и пароль в вашей среде, указав один двоеточие с этой опцией: "-u:" ,

Если эта опция используется несколько раз, будет использована последняя.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .