web-dev-qa-db-ja.com

Curlを使用してローカルからホストにすべてのファイルをアップロードするにはどうすればよいですか?

ローカルからホストへの特定のパスに異なる名前のすべてのファイルをアップロードするシェルスクリプトを作成しましたが、いくつかの問題が発生し、ファイルがアップロードされません

#!/bin/sh
for file in /main/folder1/path/*
do
curl -u Pass:"Uname" -T  $file http://www.example.com/folder/$file
done

これを解決するのを手伝ってください。

次のようなエラーが発生します

<html>
<head>
<title> 500 Internal Server Error </title>
</head>
<body>
<h1> 
Internal Server Error 
</h1> 
</body>
</html>

現在、/main/folder_2内にスクリプトがあり、/main/folder_1/path/*../folder_1/path/*に変更すると、出力が得られ、ファイルは期待どおりに移動します。しかし、完全なパスを指定してスクリプトを実行したいと思います。

2
thamizhinian

スクリプトを次のように変更します。

#!/bin/sh

for file in /folder/path/*
do
  curl -u username:password -T ${file} http://www.example.com/folder/${file}
done

Forループ変数filecurlとともに使用されることに注意してください。

より良い方法は、find + curlを使用してアップロードすることです( SOで回答 ):

find /folder/path/ -name '*' -type f -exec curl -u USERNAME:PASSWORD -T {} http://www.example.com/folder/ \;

P.S.についての詳細

いくつかの問題は、ファイルのアップロードを停止することです

役に立ちます。

4
DIG mbl