Wie lade ich mit Curl alle Dateien vom lokalen Speicherort auf den Host hoch?

Wie lade ich mit Curl alle Dateien vom lokalen Speicherort auf den Host hoch?

Ich habe ein Shell-Skript geschrieben, um alle Dateien mit unterschiedlichen Namen im spezifischen Pfad vom lokalen zum Host hochzuladen, aber ich habe ein Problem und die Dateien werden nicht hochgeladen

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

Bitte helfen Sie mir, das Problem zu lösen.

ich erhalte den folgenden Fehler

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

derzeit habe ich das Skript darin /main/folder_2. Wenn ich /main/folder_1/path/*zu ändere ../folder_1/path/*, erhalte ich die Ausgabe, die Dateien werden wie erwartet verschoben. Aber ich möchte das Skript mit dem angegebenen vollständigen Pfad ausführen.

Antwort1

Ich würde Ihr Skript folgendermaßen ändern:

#!/bin/sh

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

Beachten Sie, dass die For-Schleifenvariable filemit verwendet wird curl.

Besser ist das Hochladen mit find + curl(wiebeantwortet auf SO):

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

PS Mehr Infos über

Ein Problem verhindert das Hochladen der Dateien

Wäre hilfreich.

verwandte Informationen