Wie lade ich ein Verzeichnis mit Verzeichnissen und Dateien rekursiv über HTTPS mit dem Befehl curl auf einen Server hoch?

0

Dies ist der Befehl, den ich benutze:

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

Ich möchte ein ganzes Verzeichnis zu meinem gehosteten Objektdienst hochladen. Außerdem möchte ich einen Schalter angeben, mit dem ich jede Datei entsprechend dem Inhaltstyp hochladen kann.

Hier ist die SH-Datei

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
Viraj Rathod
quelle

Antworten:

1

Ich werde nicht versuchen, Ihr Skript neu zu schreiben, sondern alle Dateien, die Sie verwenden könnten, rekursiv zu finden findZum Beispiel, um alle regulären Dateien zu finden

find directory -type f

oder um alles zu finden, was kein Verzeichnis ist

find directory \! -type d

Dann könnten Sie einen Befehl für jedes Element ausführen, xargs wäre toll (mit null getrennten Namen hier)

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

Wenn Sie die Dateinamenerweiterung untersuchen möchten, klicken Sie auf & amp; verarbeitung, dann könntest du ein separates verwenden find für jeden -name *.extension Typ oder verwenden Sie so etwas wie eine while-Leseschleife

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