我需要一个可以执行WebDAV上传(HTTP PUT)的命令行实用程序。

有帮助吗?

解决方案

cURL 将为您完成。

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

其他提示

对于unix(以及安装了 Cygwin 的Windows),您可以使用尸体

最常用的命令行HTTP实用程序似乎是 cURL ,它将执行 PUT 及其 -T选项。但是,您需要了解相当多的WebDAV协议,而不是使用它进行上传。

免费 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的作者)

此概述包含一个webdav服务器的详细列表和客户端。

我选择尸体,或者,如果我的需求非常具体,使用 PyWebDAV 库。

另一个选项是“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等。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top