题
我需要一个可以执行WebDAV上传(HTTP PUT)的命令行实用程序。
解决方案
cURL 将为您完成。
curl -T filetoput.xml http://www.url.com/filetoput.xml
其他提示
免费 WinSCP (适用于Windows)支持WebDAV(和WebDAVS)。
WinSCP也支持脚本/命令行操作。
通过WebDAV上传文件的示例WinSCP脚本:
open https://user@webdav.example.com/
put file.txt /path/
exit
将脚本保存到文件(例如 script.txt
)并运行如下:
winscp.com /script=script.txt
您也可以将所有内容放在一行:
winscp.com /command "open https://user@webdav.example.com/" "put file.txt /path/" "exit"
从使用WinSCP编写脚本简介开始。
您甚至可以 WinSCP GUI为您生成脚本文件。
(我是WinSCP的作者)
另一个选项是“davix”
https://dmc.web.cern.ch/projects/davix/home
它已经分离了像davix-mkdir davix-put等的utils 您可以在URL中指定信用证,如
davix-mkdir http://user:passw@example.com/dir_to_create
davix-put local_file http://user:passw@example.com/dir_to_create/remote_file_name
在KDE下使用KIO:
kioclient cp file.txt 'webdavs://user@webdav.example.com:443/'
如果您需要通过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.第二,你可以利用找到 shell命令,使用 curl
将其上传到您的服务器。
cd local_folder_to_upload && find . -exec curl -T {} 'http://your.server/uploads/{}' --user 'name:pwd' \;
上面的代码循环遍历给定目录中的所有文件(使用find),并将输出(具有相对路径的文件名)添加到webserver的url中的占位符 {}
。因此它会产生多个请求(每个文件一个),并且由于所有嵌套文件夹都是事先创建的 - 这些请求不应该失败。
希望它对某人有帮助。
Telerik Fiddler有一个“撰写”选项卡,您可以在其中创建 自己定制的WebDAV请求。例如。 PROPFIND和OPTIONS等。