it-swarm-ja.com

curlコマンドを使用して、HTTPSを介してディレクトリとファイルを含むディレクトリをサーバーに再帰的にアップロードするにはどうすればよいですか?

これは私が使用しているコマンドです:

curl --insecure -i https://XX.XXX.XXX.XX/project/conatinername/foldertobeuploaded/${file}.html -X PUT -H "Content-Type: text/html charset=UTF-8; -H "Content-Length:0" -H "X-Auth-Token: $token" -T /home/folder/${file}.html

ホストされているオブジェクトサービスにディレクトリ全体をアップロードしたい。また、コンテンツの種類に応じてすべてのファイルをアップロードするのに役立つスイッチケースを提供したいと思います。

これがshファイルです

for file in /home/folder/*
 if [ ${extension} == "html" ];
  do
        curl --insecure https://10.147.202.80:8081/Swift/v1/JFSTechBackup/${file} -X PUT -H "Content-Type: text/html charset=UTF-8; -H "Content-Length:0" -H "X-Auth-Token: $token" -T /home/folder/${file}

 Elif [ ${extension} == "css" ]; then
   do
         curl --insecure https:/home/folder/${file} -X PUT -H "Content-Type: text/css -H "X-Auth-Token: $token" -T /home/folder/${file}
 else if [ ${extension} == "png" ]; then
   do
        curl --insecure https:/home/folder/${file} -X PUT -H "Content-Type: image/png -H "X-Auth-Token: $token" -T /home/folder/${file}

fi
1
Viraj Rathod

スクリプトを書き直そうとはしませんが、findを使用してすべてのファイルを再帰的に検索するには、たとえば、すべての通常のファイルを検索します。

find directory -type f

またはディレクトリ以外のすべてを見つける

find directory \! -type d

次に、各アイテムに対していくつかのコマンドを実行できます。xargsは素晴らしいでしょう(ここではnullで区切られた名前を使用)

find directory \! -type d -print0 | xargs -0 curl ...

ファイル名拡張子の検査と処理が必要な場合は、-name *.extensionタイプごとに個別のfindを使用するか、while読み取りループのようなものを使用できます。

find directory \! -type d | while read onthisfile; do echo Processing "$onthisfile; done
1
Xen2050