S3-kompatible API-Tools verwenden

Last change on 2024-12-03 • Created on 2024-09-23 • ID: ST-CDAC7
  1. Erstellen Sie Ihre S3-Zugangsdaten

    Für eine Schritt-für-Schritt-Anleitung, siehe das Getting Started "S3-Zugangsdaten hinzufügen".

    Denken Sie daran, die Keys nach dem Erstellen lokal abzuspeichern, da es nicht möglich ist, sich den Secret Key erneut anzeigen zu lassen. Weder über die Cloud Console noch über die API.

  2. Installieren Sie ein Amazon S3-kompatibles API-Tool

    Es gibt mehrere verschiedene Tools zur Auswahl. Beliebte Beispiele sind:

    Für macOS- oder Linux-Benutzer könnte MinIO Client eine interessante Wahl sein, da hier Unix-ähnliche Befehle verwendet werden (z.B. cat / cp / rm). Klicken Sie auf eine der unteren Optionen, um die nächsten Schritte für das Tool Ihrer Wahl auszuklappen.


MinIO Client
  1. Die Konfigurationsdatei verstehen

    Nachdem Sie den MinIO Client installiert haben, muss die Konfigurationsdatei erstellt werden. In der Konfigurationsdatei können mehrere Aliasse hinzugefügt werden. Jedes Alias enthält folgende Informationen:

    • Standortgebundener Endpunkt (z.B. fsn1.your-objectstorage.com)
    • Projektgebundener Access Key und Secret Key

    Das heißt, für jeden Standort und für jedes Projekt muss ein separater Alias angelegt werden.

    Beispiel:

    Projekt default
    access_key_1
    secret_key_1

    bucket1.fsn1.your-objectstorage.com
    bucket2.nbg1.your-objectstorage.com
    Projekt holu
    access_key_2
    secret_key_2

    bucket3.fsn1.your-objectstorage.com
    bucket4.fsn1.your-objectstorage.com

    In diesem Beispiel sind nur die Buckets bucket3 und bucket4:

    • Im selben Projekt (gleicher Access Key und Secret Key)
    • Im selben Standort (gleicher Endpunkt).

    Die anderen Buckets haben entweder andere Keys oder einen anderen Endpunkt.

    Das heißt, in diesem Beispiel müssten in der mc Konfigurationsdatei 3 verschiedene Aliasse angelegt werden.

    Beispiel-Konfigurationsdatei ausklappen
    {
       "version": "10",
    	"aliases": {
     	         "default-nbg1": {
     		                       "url": "https://nbg1.your-objectstorage.com",
     		                       "accessKey": "access_key_1",
     		                       "secretKey": "secret_key_1",
     		                       "api": "S3v4",
     		                       "path": "off"
     	         },
     	         "default-fsn1": {
     		                       "url": "https://fsn1.your-objectstorage.com",
     		                       "accessKey": "access_key_1",
     		                       "secretKey": "secret_key_1",
     		                       "api": "S3v4",
     		                       "path": "off"
     	         },
     	         "holu-fsn1": {
     		                       "url": "https://fsn1.your-objectstorage.com",
     		                       "accessKey": "access_key_2",
     		                       "secretKey": "secret_key_2",
     		                       "api": "S3v4", 
     		                       "path": "off" 
     	         }
        }
    }

  2. Die Konfigurationsdatei erstellen

    Um die Konfigurationsdatei zu erstellen und das erste Alias hinzuzufügen, kann der alias set-Befehl genutzt werden. Später kann dieser Befehl auch genutzt werden, um bestehende Aliasse zu bearbeiten. Sie können dem Alias einen beliebigen Namen geben. Achten Sie lediglich darauf, dass Sie keinen Namen doppelt vergeben. Beachten Sie im untenstehenden Befehl, dass der Hetzner S3 Endpunkt den Standort enthalten muss (in diesem Beispiel fsn1). Wenn Ihre Buckets in einem anderen Standort sind, passen Sie den Endpunkt entsprechend an.

    mc alias set <alias-name> \
      https://fsn1.your-objectstorage.com \
      <your_access_key> <your_secret_key> \
      --api "s3v4" \
      --path "off"

    Anschließend sollte die neue Konfigurationsdatei .mc/config.json im Benutzerverzeichnis sein. Mit folgendem Befehl kann man sich alle Aliasse listen lassen:

    mc alias list
  3. Die Konfiguration testen

    Mit folgendem Befehl werden mittels der Keys und des Endpunkts des angegebenen Aliases alle Buckets gelistet:

    mc ls <alias_name>

    Als nächstes könnten Sie testen, eine Datei auf einen der Buckets zu kopieren:

    mc cp example-file.txt <alias_name>/<bucket_name>/

    Damit wird die Datei example-file.txt in Ihren Bucket kopiert.

    Für weitere Befehle, siehe "Command Quick Reference" in der offiziellen MinIO Client Dokumentation.


S3cmd
  1. Die Konfigurationsdatei verstehen

    Nachdem Sie S3cmd installiert haben, muss die Konfigurationsdatei erstellt werden. Die Konfigurationsdatei enthält folgende Informationen:

    • Standortgebundener Endpunkt (z.B. fsn1.your-objectstorage.com)
    • Projektgebundener Access Key und Secret Key

    Das heißt, für jeden Standort und für jedes Projekt muss eine eigene Konfigurationsdatei angelegt werden.

    Beispiel:

    Projekt default
    access_key_1
    secret_key_1

    bucket1.fsn1.your-objectstorage.com
    bucket2.nbg1.your-objectstorage.com
    Projekt holu
    access_key_2
    secret_key_2

    bucket3.fsn1.your-objectstorage.com
    bucket4.fsn1.your-objectstorage.com

    In diesem Beispiel sind nur die Buckets bucket3 und bucket4:

    • Im selben Projekt (gleicher Access Key und Secret Key)
    • Im selben Standort (gleicher Endpunkt).

    Die anderen Buckets haben entweder andere Keys oder einen anderen Endpunkt.

    Das heißt, in diesem Beispiel müssten drei verschiedene Konfigurationsdateien angelegt werden.

    Beispiel-Konfigurationsdateien ausklappen
    .s3cfg-default-fsn1
    access_key_1
    secret_key_1

    fsn1.your-objectstorage.com
    %(bucket)s.fsn1.your-objectstorage.com
    .s3cfg-default-nbg1
    access_key_1
    secret_key_1

    nbg1.your-objectstorage.com
    %(bucket)s.nbg1.your-objectstorage.com

    .s3cfg-holu-fsn1
    access_key_2
    secret_key_2

    fsn1.your-objectstorage.com
    %(bucket)s.fsn1.your-objectstorage.com

    Der Default-Name für die Konfigurationsdatei ist .s3cmd. Wenn Sie den s3cmd-Befehl ausführen ohne den Dateinamen anzugeben, nutzt S3cmd automatisch die Informationen (Keys und Endpunkt) aus der Default-Konfigurationsdatei .s3cfg. Wenn Sie die Keys und den Endpunkt aus einer anderen Konfigurationsdatei verwenden möchsten, müssen Sie den Dateinamen mit dem -c-Flag angeben. Beispielbefehl um Buckets zu listen:

    s3cmd -c ~/.s3cfg-project2-nbg1 ls

  2. Die Konfigurationsdatei erstellen

    Um eine Konfigurationsdatei zu erstellen, kann der --configure Flag genutzt werden. Mit dem untenstehenden Befehl wird die Default-Datei .s3cmd erstellt.

    Um die Konfigurationsdatei mit einem anderen Namen zu erstellen, muss im untenstehenden Befehl -c <file-name> ergänzt werden.

    s3cmd --configure

    Sie müssen zwei Keys angeben — den Access Key und den Secret Key. Hinterlegen Sie die Keys aus "Schritt 1". Die Default Region muss nicht geändert werden, da die Angabe auf den Hetzner S3 Endpunkt ohnehin keinen Einfluss hat. Geben Sie als Endpunkt den Hetzner S3 Endpunkt an. Beachten Sie, dass der Hetzner S3 Endpunkt den Standort enthalten muss (in diesem Beispiel fsn1). Wenn Ihre Buckets in einem anderen Standort sind, passen Sie den Endpunkt entsprechend an. Für den "DNS-style template" kann der Hetzner S3 Endpunkt mit %(bucket)s am Anfang der URL angegeben werden.

    Beispiel für Buckets in Falkenstein:

    Konfigurationsparameter Wert
    Access Key: <your_access_key>
    Secret Key: <your_secret_key>
    Default Region: US
    S3 Endpoint: fsn1.your-objectstorage.com
    DNS-style template
    for accessing a bucket:

    bucket+hostname:port
    %(bucket)s.fsn1.your-objectstorage.com

    Anschließend sollte die neue Konfigurationsdatei .s3cfg im Benutzerverzeichnis sein.

  3. Die Konfiguration testen

    Mit folgendem Befehl werden mittels der Keys und des Endpunkts aus der Konfigurationsdatei alle Buckets gelistet:

    Wenn die Konfigurationsdatei nicht den Default-Namen hat, ergänzen Sie -c <file-name> im untenstehenden Befehl.

    s3cmd ls

    Als nächstes könnten Sie testen, eine Datei auf einen der Buckets zu kopieren:

    Wenn die Konfigurationsdatei nicht den Default-Namen hat, ergänzen Sie -c <file-name> im untenstehenden Befehl.

    s3cmd put example-file.txt s3://<bucket_name>/example.txt

    Damit wird die Datei example-file.txt in Ihren Bucket kopiert und in example.txt umbenannt.


RCLONE
  1. Die Konfigurationsdatei verstehen

    Nachdem Sie Rclone installiert haben, muss die Konfigurationsdatei erstellt werden. In der Konfigurationsdatei können mehrere "Remotes" hinzugefügt werden. Jedes "Remote" enthält folgende Informationen:

    • Standortgebundener Endpunkt (z.B. fsn1.your-objectstorage.com)
    • Projektgebundener Access Key und Secret Key

    Das heißt, für jeden Standort und für jedes Projekt muss ein separater "Remote" angelegt werden.

    Beispiel:

    Projekt default
    access_key_1
    secret_key_1

    bucket1.fsn1.your-objectstorage.com
    bucket2.nbg1.your-objectstorage.com
    Projekt holu
    access_key_2
    secret_key_2

    bucket3.fsn1.your-objectstorage.com
    bucket4.fsn1.your-objectstorage.com

    In diesem Beispiel sind nur die Buckets bucket3 und bucket4:

    • Im selben Projekt (gleicher Access Key und Secret Key)
    • Im selben Standort (gleicher Endpunkt).

    Die anderen Buckets haben entweder andere Keys oder einen anderen Endpunkt.

    Das heißt, in diesem Beispiel müssten in der rclone Konfigurationsdatei 3 verschiedene "Remotes" angelegt werden.

    Beispiel-Konfigurationsdatei ausklappen
    [default-nbg1]
    type = s3
    provider = Other
    access_key_id = access_key_1
    secret_access_key = secret_key_1
    endpoint = nbg1.your-objectstorage.com
    acl = private
    region = nbg1
    
    [default-fsn1]
    type = s3
    provider = Other
    access_key_id = access_key_1
    secret_access_key = secret_key_1
    endpoint = fsn1.your-objectstorage.com
    acl = private
    region = fsn1
    
    [holu-fsn1]
    type = s3
    provider = Other
    access_key_id = access_key_2
    secret_access_key = secret_key_2
    endpoint = fsn1.your-objectstorage.com
    acl = private
    region = fsn1

  2. Die Konfigurationsdatei erstellen

    Um die Konfigurationsdatei zu erstellen und das erste "Remote" hinzuzufügen, kann der config-Befehl genutzt werden. Sie können dem Remote einen beliebigen Namen geben. Achten Sie lediglich darauf, dass Sie keinen Namen doppelt vergeben. Beachten Sie beim Angeben des Endpunkts, dass der Hetzner S3 Endpunkt den Standort enthalten muss (in diesem Beispiel fsn1). Wenn Ihre Buckets in einem anderen Standort sind, passen Sie den Endpunkt entsprechend an.

    rclone config

    Beispiel für Buckets in Falkenstein:

    Konfigurationsparameter Wert
    n) New remote
    s) Set configuration password
    q) Quit config
    n
    Name Hier kann ein beliebiger Name angegeben werden. Um den Remote besser zuordnen zu können, können hier zum Beispiel der Projektname und der Endpunkt-Standort angegeben werden default-fsn1
    Storage 4 / Amazon S3 Compliant Storage Providers
    Provider 32 / Any other S3 compatible provider
    env_auth 1 / Enter AWS credentials in the next step.
    Access Key: <your_access_key>
    Secret Key: <your_secret_key>
    Region 1 / Will use v4 signatures and an empty region.
    Endpoint fsn1.your-objectstorage.com

    Wählen Sie für die restlichen Angaben eine der Optionen. Anschließend kann der Vorgang mit "Quit config" beendet werden und die neue Konfigurationsdatei .config/rclone/rclone.conf sollte im Benutzerverzeichnis sein. Mit folgendem Befehl kann man sich alle Remotes listen lassen:

    rclone listremotes
  3. Die Konfiguration bearbeiten

    Bearbeiten Sie nun die Datei .config/rclone/rclone.conf und fügen Sie die Zeile "region" ein:

    [holu-fsn1]
    type = s3
    provider = Other
    access_key_id = <access_key>
    secret_access_key = <secret_key>
    endpoint = fsn1.your-objectstorage.com
    acl = private
    region = fsn1
  4. Die Konfiguration testen

    Mit folgendem Befehl werden mittels der Keys und des Endpunkts des angegebenen "Remotes" alle Buckets gelistet:

    rclone ls <remote_name>:

    Als nächstes könnten Sie testen, eine Datei auf einen der Buckets zu kopieren:

    rclone copy example-file.txt <remote_name>:<bucket_name>

    Damit wird die Datei example-file.txt in Ihren Bucket kopiert.

    Für weitere Befehle, siehe "Rclone Commands" in der offiziellen RCLONE Dokumentation.


AWS CLI
  1. Die Konfigurationsdatei verstehen

    Nachdem Sie die AWS CLI installiert haben, müssen die Konfigurationsdatei und die Zugangsdatendatei erstellt werden. In den Dateien können mehrere Profile hinzugefügt werden. Jedes Profil enthält folgende Informationen:

    • Standortgebundener Endpunkt (z.B. fsn1.your-objectstorage.com)
    • Projektgebundener Access Key und Secret Key

    Das heißt, für jeden Standort und für jedes Projekt muss ein separates Profil angelegt werden.

    Beispiel:

    Projekt hero
    access_key_1
    secret_key_1

    bucket1.fsn1.your-objectstorage.com
    bucket2.nbg1.your-objectstorage.com
    Projekt holu
    access_key_2
    secret_key_2

    bucket3.fsn1.your-objectstorage.com
    bucket4.fsn1.your-objectstorage.com

    In diesem Beispiel sind nur die Buckets bucket3 und bucket4:

    • Im selben Projekt (gleicher Access Key und Secret Key)
    • Im selben Standort (gleicher Endpunkt).

    Die anderen Buckets haben entweder andere Keys oder einen anderen Endpunkt.

    Das heißt, in diesem Beispiel müssten in der aws Konfigurationsdatei und Zugangsdatendatei 3 verschiedene Profile angelegt werden.

    Beispiel-Konfigurationsdatei und Zugangsdatendatei ausklappen
    • Konfigurationsdatei:

      [default]
      endpoint_url = https://nbg1.your-objectstorage.com
      
      [profile hero-fsn1]
      endpoint_url = https://fsn1.your-objectstorage.com
      
      [profile holu-fsn1]
      endpoint_url = https://fsn1.your-objectstorage.com
    • Zugangsdatendatei:

      [default]
      aws_access_key_id=access_key_1
      aws_secret_access_key=secret_key_1
      
      [hero-fsn1]
      aws_access_key_id=access_key_1
      aws_secret_access_key=secret_key_1
      
      [holu-fsn1]
      aws_access_key_id=access_key_2
      aws_secret_access_key=secret_key_2

    In den Dateien gibt es ein Default-Profil. Wenn Sie den aws-Befehl ausführen ohne einen Profilnamen anzugeben, nutzt die AWS CLI automatisch die Informationen (Keys und Endpunkt) des Default-Profils [default]. Wenn Sie die Keys und den Endpunkt von einem anderen Profil verwenden möchten, müssen Sie den Profilnamen mit --profile angeben. Beispielbefehl um Buckets zu listen:

    aws s3 ls --profile holu-fsn1

  2. Die Konfigurationsdatei und Zugangsdatendatei erstellen

    Um die Dateien zu erstellen, kann der configure-Befehl genutzt werden. Mit dem untenstehenden Befehl wird das Default-Profil [default] erstellt.

    Um ein Profil mit einem anderen Namen zu erstellen, muss im untenstehenden Befehl --profile <profile-name> ergänzt werden.

    aws configure

    Sie müssen zwei Keys angeben — den Access Key und den Secret Key. Hinterlegen Sie die Keys aus "Schritt 1". Die Optionen "Default region name" und "Default output format" können ohne weitere Angaben übersprungen werden.

    Das neue Profil wurde nun in den Dateien ~/.aws/credentials und ~/.aws/config hinzugefügt. Die Datei ~/.aws/credentials enthält bereits den Access Key und den Secret Key. Die Datei ~/.aws/config muss jetzt noch manuell bearbeitet werden, um den Hetzner S3 Endpunkt hinzuzufügen.

    nano ~/.aws/config

    Geben Sie unterhalb des Profils den Hetzner S3 Endpunkt an. Beachten Sie, dass der Hetzner S3 Endpunkt den Standort enthalten muss (in diesem Beispiel fsn1). Wenn Ihre Buckets in einem anderen Standort sind, passen Sie den Endpunkt entsprechend an.

    Beispiel:

    [default]
    endpoint_url = https://fsn1.your-objectstorage.com
    
    #Lassen Sie die unteren Zeilen beim Erstellen von Buckets auskommentiert
    #Entfernen Sie die unteren #-Symbole vor dem Erstellen von signierten URLs
    #s3 =
    #  addressing_style = virtual
  3. Die Konfiguration testen

    Mit folgendem Befehl werden mittels der Keys und des Endpunkts aus der Konfigurationsdatei und der Zugangsdatendatei alle Buckets gelistet:

    Wenn das Profil nicht den Default-Namen besitzt, ergänzen Sie --profile <profile-name> im untenstehenden Befehl.

    aws s3 ls

    Als nächstes könnten Sie testen, eine Datei auf einen der Buckets zu kopieren:

    Wenn das Profil nicht den Default-Namen besitzt, ergänzen Sie --profile <profile-name> im untenstehenden Befehl.

    aws s3 cp example-file.txt s3://<bucket_name>/example.txt

    Damit wird die Datei example-file.txt in Ihren Bucket kopiert und in example.txt umbenannt.



Sie sollten nun startklar sein, um Ihre Buckets zu verwalten. Weitere Informationen über verfügbare Funktionen finden Sie in dem Artikel "Liste unterstützter Actions". Für detaillierte Anweisungen, wie man die unterstützten Actions ausführt, lesen Sie bitte die offizielle Dokumentation des Tools, welches Sie installiert haben.