Подтвердить что ты не робот

Утилита командной строки для загрузки WebDAV

Мне нужна утилита командной строки, которая может выполнять загрузку WebDAV (HTTP PUT).

4b9b3361

Ответ 1

cURL сделает это за вас.

curl -T filetoput.xml http://www.url.com/filetoput.xml

Ответ 2

Для Unix (и Windows с установленным Cygwin) вы можете использовать Cadaver

Ответ 3

Наиболее часто используемая утилита HTTP командной строки выглядит cURL, которая будет PUT с ее - параметр T. Тем не менее, вам нужно будет понять довольно много протокола WebDAV, чтобы делать больше, чем загружать с ним.

Ответ 4

Бесплатный WinSCP (для Windows) поддерживает WebDAV (и WebDAVS).
WinSCP также поддерживает сценарии/операции командной строки.

Пример сценария WinSCP для загрузки файла через WebDAV:

open https://[email protected]/
put file.txt /path/
exit

Сохраните скрипт в файл (например, script.txt) и запустите так:

winscp.com /script=script.txt

Вы также можете поместить все в одну строку:

winscp.com /command "open https://[email protected]/" "put file.txt /path/" "exit"

Начните с введения в сценарии с WinSCP.

Вы даже можете иметь WinSCP GUI для создания файла сценария для вас.

(Я автор WinSCP)

Ответ 5

этот обзор содержит список серверов и клиентов webdav.

Я бы выбрал труп или, если бы мои потребности были очень специфичными, python script, используя библиотеку PyWebDAV.

Ответ 7

Используйте KIO в KDE:

kioclient cp file.txt 'webdavs://[email protected]:443/'

Ответ 8

Если вам нужно загрузить весь каталог вместо одного файла через WebDAV, вы можете использовать следующий подход.

Представьте, что у вас есть следующая локальная папка, которую вы собираетесь загрузить через WebDAV.

local_folder_to_upload
│   test.txt
│   test1.txt    
│
└───nested_folder1
│   │   file1.txt
│   │   file2.txt
│   │
│   └───nested_folder2
│       │   file11.txt
│       │   file12.txt

1. Сначала вам нужно создать вложенные каталоги из вашей локальной папки (если они есть) на сервере. Поскольку WebDAV не поддерживает рекурсивную загрузку, вы должны сделать это в отдельном шаге (если вы должны использовать ftp - вы бы добавили --ftp-create-dirs чтобы сделать это). Для создания этих папок через WebDAV вам нужно использовать метод MKCOL.

curl -X MKCOL 'http://your.server/uploads/nested_folder1' --user 'name:pwd'
curl -X MKCOL 'http://your.server/uploads/nested_folder1/nested_folder2' --user 'name:pwd'

Обратите внимание, что вы не можете создать их в одном запросе в соответствии со спецификацией.

если сделан запрос на создание коллекции /a/b/c/d/и /a/b/c/не существует, запрос должен завершиться неудачей.

2. Во-вторых, вы можете использовать вывод команды find shell, чтобы загрузить ее на свой сервер с помощью curl.

cd local_folder_to_upload && find . -exec curl -T {} 'http://your.server/uploads/{}' --user 'name:pwd' \;

Приведенный выше код перебирает все ваши файлы внутри данного каталога (используя find) и добавляет вывод (имя файла с относительным путем) к заполнителю {} в URL вашего веб-сервера. Таким образом, он делает несколько запросов (по одному на каждый файл), и поскольку все вложенные папки были созданы заранее - эти запросы не должны завершаться сбоем.

Надеюсь, это будет полезно для кого-то.

Ответ 9

Teleric Fiddler имеет вкладку "Создать", где вы можете создать свой собственный настраиваемый запрос WebDAV. Например, PROPFIND, OPTIONS и т.д.