-
Erstelle deine S3-Zugangsdaten
Für eine Schritt-für-Schritt-Anleitung, siehe das Getting Started "S3-Zugangsdaten hinzufügen".
Denk 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 Hetzner Console noch über die API.
-
Installiere ein Amazon S3-kompatibles API-Tool
Es gibt mehrere verschiedene Tools zur Auswahl. Beliebte Beispiele sind:
- MinIO Client
mc - S3cmd
s3cmd - S5cmd
s5cmd - RCLONE
rclone - AWS CLI
aws
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). klicke auf eine der unteren Optionen, um die nächsten Schritte für das Tool deiner Wahl auszuklappen. - MinIO Client
-
Richte das Tool ein
klicke auf eine der Optionen, um die entsprechenden Schritte einzublenden.
-
Die Konfigurationsdatei verstehen
Nachdem du den MinIO Client installiert hast, 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 defaultaccess_key_1secret_key_1
bucket1.fsn1.your-objectstorage.combucket2.nbg1.your-objectstorage.comProjekt holuaccess_key_2secret_key_2
bucket3.fsn1.your-objectstorage.combucket4.fsn1.your-objectstorage.com
In diesem Beispiel sind nur die Buckets
bucket3undbucket4:- 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
mcKonfigurationsdatei 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" } } }
- Standortgebundener Endpunkt (z.B.
-
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. Du kannst dem Alias einen beliebigen Namen geben. Achte lediglich darauf, dass du keinen Namen doppelt vergibst. Beachte im untenstehenden Befehl, dass der Hetzner S3 Endpunkt den Standort enthalten muss (in diesem Beispielfsn1). Wenn deine Buckets in einem anderen Standort sind, pass 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.jsonim Benutzerverzeichnis sein. Mit folgendem Befehl kann man sich alle Aliasse listen lassen:mc alias list -
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 kannst du testen, einen neuen Bucket zu erstellen und eine Datei auf diesen Bucket zu kopieren:
Ersetze
regionmit einem verfügbaren Standort, z.B.fsn1.mc mb <alias_name>/<bucket_name> --region <region> mc cp example-file.txt <alias_name>/<bucket_name>/Damit wird die Datei
example-file.txtin deinen Bucket kopiert.Für weitere Befehle, siehe "Command Quick Reference" in der offiziellen MinIO Client Dokumentation.
-
Die Konfigurationsdatei verstehen
Nachdem du S3cmd installiert hast, 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 defaultaccess_key_1secret_key_1
bucket1.fsn1.your-objectstorage.combucket2.nbg1.your-objectstorage.comProjekt holuaccess_key_2secret_key_2
bucket3.fsn1.your-objectstorage.combucket4.fsn1.your-objectstorage.com
In diesem Beispiel sind nur die Buckets
bucket3undbucket4:- 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-fsn1access_key_1secret_key_1
fsn1.your-objectstorage.com%(bucket)s.fsn1.your-objectstorage.com.s3cfg-default-nbg1access_key_1secret_key_1
nbg1.your-objectstorage.com%(bucket)s.nbg1.your-objectstorage.com
.s3cfg-holu-fsn1access_key_2secret_key_2
fsn1.your-objectstorage.com%(bucket)s.fsn1.your-objectstorage.com
Der Default-Name für die Konfigurationsdatei ist
.s3cmd. Wenn du dens3cmd-Befehl ausführst ohne den Dateinamen anzugeben, nutzt S3cmd automatisch die Informationen (Keys und Endpunkt) aus der Default-Konfigurationsdatei.s3cfg. Wenn du die Keys und den Endpunkt aus einer anderen Konfigurationsdatei verwenden möchtest, musst du den Dateinamen mit dem-c-Flag angeben. Beispielbefehl um Buckets zu listen:s3cmd -c ~/.s3cfg-project2-nbg1 ls
- Standortgebundener Endpunkt (z.B.
-
Die Konfigurationsdatei erstellen
Um eine Konfigurationsdatei zu erstellen, kann der
--configureFlag genutzt werden. Mit dem untenstehenden Befehl wird die Default-Datei.s3cmderstellt.Um die Konfigurationsdatei mit einem anderen Namen zu erstellen, muss im untenstehenden Befehl
-c <file-name>ergänzt werden.s3cmd --configureDu musst zwei Keys angeben — den Access Key und den Secret Key. Hinterlege 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. Gib als Endpunkt den Hetzner S3 Endpunkt an. Beachte, dass der Hetzner S3 Endpunkt den Standort enthalten muss (in diesem Beispiel
fsn1). Wenn deine Buckets in einem anderen Standort sind, pass den Endpunkt entsprechend an. Für den "DNS-style template" kann der Hetzner S3 Endpunkt mit%(bucket)sam 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
.s3cfgim Benutzerverzeichnis sein. -
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änze
-c <file-name>im untenstehenden Befehl.s3cmd lsAls Nächstes kannst du testen, einen neuen Bucket zu erstellen und eine Datei auf diesen Bucket zu kopieren:
Wenn die Konfigurationsdatei nicht den Default-Namen hat, ergänze
-c <file-name>im untenstehenden Befehl.s3cmd mb s3://<bucket_name> --region=fsn1 s3cmd put example-file.txt s3://<bucket_name>/example.txtDamit wird die Datei
example-file.txtin deinen Bucket kopiert und inexample.txtumbenannt. -
Die Konfigurationsdatei verstehen
Nachdem du s5cmd installiert hast, muss die Zugangsdatendatei erstellt werden. In der Zugangsdatendatei können mehrere Profile hinzugefügt werden. Jedes Profil enthält folgende Informationen:
- Projektgebundener Access Key und Secret Key
Das heißt, für jedes Projekt muss ein separates Profil angelegt werden.
Zusätzlich muss der Endpunkt als Umgebungsvariable gespeichert. Der Default-Endpunkt wird standardmäßig für alle Profile verwendet.
Beispiel:
Projekt heroaccess_key_1secret_key_1
bucket1.fsn1.your-objectstorage.combucket2.nbg1.your-objectstorage.comProjekt holuaccess_key_2secret_key_2
bucket3.fsn1.your-objectstorage.combucket4.fsn1.your-objectstorage.com
In diesem Beispiel sind nur die Buckets
bucket3undbucket4:- 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 Zugangsdatendatei 2 verschiedene Profile angelegt werden. Die Umgebungsvariable mit dem Default-Endpunkt sollte auf
fsn1.your-objectstorage.comgesetzt werden. -
Die Zugangsdatendatei erstellen und den Endpunkt festlegen
s5cmd liest die Zugangsdaten aus einer Datei. Der Endpunkt muss über eine Umgebungsvariable festgelegt werden.
-
Zugangsdatendatei erstellen
~/.aws/credentialsIn der Datei müssen zwei Keys angeben werden — der Access Key und der Secret Key. Lege die Keys aus "Schritt 1" hinterlegen.
Neben dem Default-Profil können noch weitere Profile mit anderen S3-Keys bestimmt werden.
Beispiel:
[default] aws_access_key_id=<your_access_key_1> aws_secret_access_key=<your_secret_key_1> [project-2] aws_access_key_id=<your_access_key_2> aws_secret_access_key=<your_secret_key_2>
-
Umgebungsvariable speichern
Beachte, dass der Hetzner S3 Endpunkt den Standort enthalten muss (in diesem Beispiel
fsn1). Wenn deine Buckets in einem anderen Standort sind, pass den Endpunkt entsprechend an.Mit den folgenden Beispiel-Befehlen wird
fsn1als Default gesetzt. Zusätzlich wird auch der Endpunkt fürnbg1als Variable gespeichert.Die Befehle unterscheiden sich je nach Betriebssystem deines Geräts.
-
Linux
echo 'export S3_ENDPOINT_URL="https://fsn1.your-objectstorage.com"' >> ~/.bashrc echo 'export S5_NBG="https://nbg1.your-objectstorage.com"' >> ~/.bashrc source ~/.bashrc -
macOS
echo 'export S3_ENDPOINT_URL="https://fsn1.your-objectstorage.com"' >> ~/.zshrc echo 'export S5_NBG="https://nbg1.your-objectstorage.com"' >> ~/.zshrc source ~/.zshrc -
Windows (PowerShell)
setx S3_ENDPOINT_URL "https://fsn1.your-objectstorage.com" setx S5_NBG "https://nbg1.your-objectstorage.com"
-
-
-
Die Konfiguration testen
Mit folgenden Befehlen werden mittels der angegeben Keys und dem Endpunkt alle Buckets gelistet.
-
Default-Profil und -Endpunkt verwenden
Dieser Befehl verwendet die Zugangsdaten von dem Default-Profil in
~/.aws/credentialsund den Default-Endpunkt, der über dieS3_ENDPOINT_URL-Umgebungsvariable festgelegt wurde.s5cmd ls
-
Anderes Profil oder Endpunkt verwenden
Wenn du ein anderes Profil verwenden möchtest, musst du den entsprechenden Profilnamen mit angeben. Auch wenn ein anderer Endpunkt verwendet werden soll, muss dieser im Befehl angegeben werden.
s5cmd \ --profile project-2 \ --endpoint-url https://nbg1.your-objectstorage.com \ lsDieser Befehl verwendet die Zugangsdaten von dem Profil "project-2" in
~/.aws/credentials.Wenn du für den alternativen Endpunkt wie in Schritt 2 erklärt eine Variable erstellt hast, kannst du den Namen der Variable angeben anstelle der vollen URL:
-
Linux / macOS
s5cmd \ --endpoint-url $S5_NBG \ ls -
Windows (PowerShell)
s5cmd \ --endpoint-url $env:S5_NBG \ ls
-
Als Nächstes kannst du testen, einen neuen Bucket zu erstellen und eine Datei auf diesen Bucket zu kopieren. Vorher musst du den Standort des Buckets festlegen.
Wenn der Standort des Buckets nicht dem Default-Endpunkt entspricht, ergänze
--endpoint-url <endpoint>in den folgendens5cmd-Befehlen.
Wenn das Profil nicht den Default-Namen besitzt, ergänze--profile <profile-name>in den folgendens5cmd-Befehlen.-
Linux / macOS
export AWS_REGION=fsn1 s5cmd mb s3://<bucket_name> s5cmd cp example-file.txt s3://<bucket_name>/example.txt -
Windows (PowerShell)
$env:AWS_REGION = "fsn1" s5cmd mb s3://<bucket_name> s5cmd cp example-file.txt s3://<bucket_name>/example.txt
Damit wird die Datei
example-file.txtin deinen Bucket kopiert und inexample.txtumbenannt. -
-
Die Konfigurationsdatei verstehen
Nachdem du Rclone installiert hast, 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 defaultaccess_key_1secret_key_1
bucket1.fsn1.your-objectstorage.combucket2.nbg1.your-objectstorage.comProjekt holuaccess_key_2secret_key_2
bucket3.fsn1.your-objectstorage.combucket4.fsn1.your-objectstorage.com
In diesem Beispiel sind nur die Buckets
bucket3undbucket4:- 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
rcloneKonfigurationsdatei 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
- Standortgebundener Endpunkt (z.B.
-
Die Konfigurationsdatei erstellen
Um die Konfigurationsdatei zu erstellen und das erste "Remote" hinzuzufügen, kann der
config-Befehl genutzt werden. Du kannst dem Remote einen beliebigen Namen geben. Achte lediglich darauf, dass du keinen Namen doppelt vergibst. Beachte beim Angeben des Endpunkts, dass der Hetzner S3 Endpunkt den Standort enthalten muss (in diesem Beispielfsn1). Wenn deine Buckets in einem anderen Standort sind, pass den Endpunkt entsprechend an.rclone configBeispiel für Buckets in Falkenstein:
Konfigurationsparameter Wert n) New remote
s) Set configuration password
q) Quit confign 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-fsn1Storage 4 / Amazon S3 Compliant Storage Providers... Provider 39 / Any other S3 compatible provider (Other) 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ähle 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.confsollte im Benutzerverzeichnis sein. Mit folgendem Befehl kann man sich alle Remotes listen lassen:rclone listremotes -
Die Konfiguration bearbeiten
Bearbeite nun die Datei
.config/rclone/rclone.confund füge 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 -
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 kannst du testen, einen neuen Bucket zu erstellen und eine Datei auf diesen Bucket zu kopieren:
rclone mkdir <remote_name>:<bucket_name> rclone copy example-file.txt <remote_name>:<bucket_name>Damit wird die Datei
example-file.txtin deinen Bucket kopiert.Für weitere Befehle, siehe "Rclone Commands" in der offiziellen RCLONE Dokumentation.
-
Die Konfigurationsdatei verstehen
Nachdem du die AWS CLI installiert hast, 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 heroaccess_key_1secret_key_1
bucket1.fsn1.your-objectstorage.combucket2.nbg1.your-objectstorage.comProjekt holuaccess_key_2secret_key_2
bucket3.fsn1.your-objectstorage.combucket4.fsn1.your-objectstorage.com
In diesem Beispiel sind nur die Buckets
bucket3undbucket4:- 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
awsKonfigurationsdatei 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 du den
aws-Befehl ausführst ohne einen Profilnamen anzugeben, nutzt die AWS CLI automatisch die Informationen (Keys und Endpunkt) des Default-Profils[default]. Wenn du die Keys und den Endpunkt von einem anderen Profil verwenden möchtest, musst du den Profilnamen mit--profileangeben. Beispielbefehl um Buckets zu listen:aws s3 ls --profile holu-fsn1
- Standortgebundener Endpunkt (z.B.
-
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 configureDu musst zwei Keys angeben — den Access Key und den Secret Key. Hinterlege 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/credentialsund~/.aws/confighinzugefügt. Die Datei~/.aws/credentialsenthält bereits den Access Key und den Secret Key. Die Datei~/.aws/configmuss jetzt noch manuell bearbeitet werden, um den Hetzner S3 Endpunkt hinzuzufügen.nano ~/.aws/configGib unterhalb des Profils den Hetzner S3 Endpunkt an. Beachte, dass der Hetzner S3 Endpunkt den Standort enthalten muss (in diesem Beispiel
fsn1). Wenn deine Buckets in einem anderen Standort sind, pass den Endpunkt entsprechend an.Beispiel:
[default] endpoint_url = https://fsn1.your-objectstorage.com #Lass die unteren Zeilen beim Erstellen von Buckets auskommentiert #Entferne die unteren #-Symbole vor dem Erstellen von signierten URLs #s3 = # addressing_style = virtual -
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änze
--profile <profile-name>im untenstehenden Befehl.aws s3 lsAls Nächstes kannst du testen, einen neuen Bucket zu erstellen und eine Datei auf diesen Bucket zu kopieren:
Wenn das Profil nicht den Default-Namen besitzt, ergänze
--profile <profile-name>im untenstehenden Befehl.aws s3 mb s3://<bucket_name> --region fsn1 aws s3 cp example-file.txt s3://<bucket_name>/example.txtDamit wird die Datei
example-file.txtin deinen Bucket kopiert und inexample.txtumbenannt.
MinIO Client
S3cmd
S5cmd
RCLONE
AWS CLI
Du solltest nun startklar sein, um deine Buckets zu verwalten. Weitere Informationen über verfügbare Funktionen findest du in dem Artikel "Liste unterstützter Actions". Für detaillierte Anweisungen, wie du die unterstützten Actions ausführt, lies die offizielle Dokumentation des Tools, das du installiert hast.