simple198
Goto Top

Upload auf S3 (Strato) über Bash-Script

Hallo Forum,

ich habe irgendwie gerade einen Hänger...

Mehr oder minder für testzwecke und auch ein wenig um den Horizont zu erweitern, befasse ich mich mit dem Upload (später dann auch Download) von Daten auf einen S3 Speicher. In diesem Fall vom Hoster Strato.

Mein Testsystem ist ein Debian 12, auf dem ich bereits die AWS-Bibliothek installiert habe.
Auf der Suche nach Ideen und Ansätzen habe ich das hier gefunden (ich bin kein Programmierer).

#!/bin/bash

# Set your AWS S3 bucket name
bucket_name="s3-pve"  

# Set the directory containing files you want to upload
directory="/tmp/files"  

# Loop through each file in the directory and upload it to S3
for file in "$directory"/*; do  
    # Get the filename
    filename=$(basename "$file")  

    # Upload the file to S3
    echo "Uploading $filename to S3..."  
    strato s3 cp $filename" "s3://s3-pve>  

    # Check if the upload was successful
    if [ $? -eq 0 ]; then
        echo "Upload of $filename successful."  
    else
        echo "Upload of $filename failed."  
    fi
done

... ein bisschen abspeckt und auf meine Bedürfnisse angepasst.

Nach vielen Hin und Her habe ich einen einzelnen, festen Befehl ausprobiert. Der hier:
strato s3 cp test.zip s3://s3-pve

In der Console direkt eingeben, funktioniert das.
"Starte" ich diesen Befehl über eine SH-Datei (./upload.sh) funktioniert das nicht. Die SH-Datei sieht dann so aus.
#!/bin/bash
strato s3 cp test.zip s3://s3-pve

Wahrscheinlich eine Frage für Freitag, aber ich raff es nicht... Hä? Hat jemand die Erleuchtung für mich? face-smile

Den Spökes später mit Schleife über mehrere Datei will ich mir dann noch selbst erarbeiten. Also warum klappt der einzelnen Befehl nicht?

Viele Grüße

P.S.: Ist der Ansatz richtig (Nicht vorhandene Doku seitens Strato lässt grüßen) mit der AWS-Cli zu arbeiten?
P.P.S.: Der Umgang mit s3fuse ist mir "zu wild". Ich möchte den Upload kontrollieren und nicht eine Art "Shared-Folder" haben.

Content-ID: 73127755953

Url: https://administrator.de/contentid/73127755953

Ausgedruckt am: 19.11.2024 um 07:11 Uhr

olav.surawski.de
Lösung olav.surawski.de 08.02.2024 um 08:33:41 Uhr
Goto Top
Hallo,

Du muss entweder den Pfad in einer config eingetragen haben, oder du du schreibst den Befehl mit kompletten Pfad da mit rein.

Das müsste dann in etwa so aussehen:

 #!/bin/bash
/wo/auch/immer/dein/programm/liegt/strato s3 cp test.zip s3://s3-pve
simple198
simple198 08.02.2024 um 14:27:00 Uhr
Goto Top
Hi,

danke für deinen Hinweis, das war wohl eine typische Freitags-Frage zum Mittwoch.

Klar, die Bash wusste ja gar nichts von "strato". Dumm war nur, dass ich einen Alias angelegt habe, der mir das "Tippen" abnehmen soll. Da hat es im Grunde mit dran gehakt.

Ich habe das Script bereits umgebaut und jetzt klappt der Upload auch wie gewünscht.

Dankeschön. face-smile