WebDAVアップロード用のコマンドラインユーティリティ

StackOverflow https://stackoverflow.com/questions/1205101

  •  05-07-2019
  •  | 
  •  

質問

WebDAVアップロード(HTTP PUT)を実行できるコマンドラインユーティリティが必要です。

役に立ちましたか?

解決

cURL がそれを行います。

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

他のヒント

Unix(および Cygwin がインストールされているWindows)では、死体

最も一般的に使用されるコマンドラインHTTPユーティリティは、 cURL のようです。これは PUT -Tオプション。ただし、WebDAVプロトコルをアップロードする以上のことを行うには、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

すべてを1行に入れることもできます:

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などのユーティリティが分離されています

のような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/'

1つのファイルではなくディレクトリ全体を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 シェルコマンドを使用して、 curl を使用してサーバーにアップロードします。

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

上記のコードは、指定されたディレクトリ内のすべてのファイルをループし(findを使用)、出力(相対パスのファイル名)をWebサーバーのURLのプレースホルダー {} に追加します。そのため、複数のリクエスト(各ファイルに1つ)を作成し、ネストされたフォルダーはすべて事前に作成されているため、これらのリクエストは失敗しません。

誰かに役立つことを願っています。

Telerik Fiddlerには" compose"があります作成できるタブ 独自のカスタマイズされたWebDAVリクエスト。例えば。 PROPFINDおよびOPTIONSなど。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top