Diese Dokumentation bezieht sich AWS CLI nur auf Version 1 von. Dokumentation zu Version 2 von finden Sie im Benutzerhandbuch für Version 2. AWS CLI
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verwenden von Befehlen auf hoher Ebene (s3) in der AWS CLI
In diesem Thema wird beschrieben, wie Sie Amazon-S3-Buckets und -Objekte mit den aws
s3
-Befehlen in der AWS CLI verwalten. Befehle, die in diesem Thema nicht behandelt werden, und weitere Befehlsbeispiele finden Sie unter aws
s3
-Befehle in der AWS CLI -Referenz.
Die aws s3
-High-Level-Befehle vereinfachen die Verwaltung von Amazon-S3-Objekten. Mit diesen Befehlen können Sie den Inhalt von Amazon S3 intern und mit lokalen Verzeichnissen verwalten.
Themen
Voraussetzungen
Zur Ausführung von s3
-Befehlen ist Folgendes erforderlich:
Installieren und Konfigurieren der AWS CLI. Weitere Informationen erhalten Sie unter Installation, Aktualisierung und Deinstallation von AWS CLI und Authentifizierungs- und Zugangsdaten für AWS CLI.
-
Das von Ihnen verwendete Profil muss über Berechtigungen verfügen, die die in den Beispielen ausgeführten AWS Operationen zulassen.
-
Sie müssen diese Amazon-S3-Begriffe verstehen:
-
Bucket – Ein Amazon-S3-Ordner der obersten Ebene.
-
Präfix – Ein Amazon-S3-Ordner in einem Bucket.
-
Objekt – Jedes Element, das in einem Amazon-S3-Bucket gehostet wird.
-
Bevor Sie beginnen
In diesem Abschnitt finden Sie einige Hinweise zur Verwendung von aws s3
-Befehlen.
Uploads großer Objekte
Wenn Sie aws s3
-Befehle zum Hochladen großer Objekte in einen Amazon-S3-Bucket verwenden, führt die AWS CLI automatisch einen mehrteiligen Upload durch. Sie können einen fehlgeschlagenen Upload nicht fortsetzen, wenn Sie diese aws s3
-Befehle verwenden.
Wenn der mehrteilige Upload aufgrund eines Timeouts fehlschlägt oder wenn Sie den Vorgang manuell abgebrochen haben AWS CLI, AWS CLI stoppt der Upload und bereinigt alle erstellten Dateien. Dieser Vorgang kann einige Minuten dauern.
Wenn der mehrteilige Upload oder Bereinigungsprozess durch einen Kill-Befehl oder einen Systemfehler abgebrochen wird, verbleiben die erstellten Dateien im Amazon-S3-Bucket. https://docs.aws.amazon.com/cli/latest/reference/s3api/abort-multipart-upload.html
Dateieigenschaften und Tags in mehrteiligen Kopien
Wenn Sie die AWS CLI Version 1 der Befehle im aws s3
Namespace verwenden, um eine Datei von einem Amazon S3 S3-Bucket-Speicherort an einen anderen Amazon S3 S3-Bucket-Speicherort zu kopieren, und dieser Vorgang mehrteiliges Kopieren verwendet, werden keine Dateieigenschaften vom Quellobjekt in das Zielobjekt kopiert.
Erstellen eines Buckets
Verwenden Sie den Befehl s3
mb
, um einen Bucket zu erstellen. Bucket-Namen müssen global eindeutig sein (einzigartig in ganz Amazon S3) und sollten DNS konform sein.
Bucket-Namen können Kleinbuchstaben, Zahlen, Bindestriche und Punkte enthalten. Bucket-Namen können nur mit einem Buchstaben oder einer Zahl beginnen und enden. Ein Punkt neben einem Bindestrich oder einem weiteren Punkt ist unzulässig.
Syntax
$
aws s3 mb <target> [--options]
Im folgenden Beispiel wird der Bucket s3://amzn-s3-demo-bucket
erstellt.
$
aws s3 mb s3://
amzn-s3-demo-bucket
Auflisten von Buckets und Objekten
Um Ihre Buckets, Ordner oder Objekte aufzulisten, verwenden Sie den Befehl s3
ls
. Wenn Sie den Befehl ohne Ziel oder Optionen verwenden, werden alle Buckets aufgelistet.
Syntax
$
aws s3 ls <target> [--options]
Ein paar gängige Optionen für diesen Befehl und Beispiele finden Sie unter Häufig verwendete Optionen für s3-Befehle. Eine vollständige Liste der verfügbaren Optionen finden Sie unter s3
ls
in der AWS CLI -Befehlsreferenz.
Das folgende Beispiel listet alle Amazon-S3-Buckets auf.
$
aws s3 ls
2018-12-11 17:08:50 amzn-s3-demo-bucketamzn-s3-demo-bucket1 2018-12-14 14:55:44 amzn-s3-demo-bucket2
Mit dem Befehl unten werden alle Objekte und Präfixe in einem Bucket aufgeführt. In dieser Beispielausgabe enthält das Präfix example/
eine Datei namens MyFile1.txt
.
$
aws s3 ls
s3://amzn-s3-demo-bucket
PRE example/ 2018-12-04 19:05:48 3 MyFile1.txt
Sie können die Ausgabe nach einem bestimmten Präfix filtern, indem Sie das Präfix in den Befehl einschließen. Der folgende Befehl listet die Objekte auf in bucket-name/example/
(das heißt, Objekte in bucket-name
gefiltert nach dem Präfix example/
).
$
aws s3 ls
s3://amzn-s3-demo-bucket/example/
2018-12-06 18:59:32 3 MyFile1.txt
Buckets löschen
Verwenden Sie zum Löschen eines Buckets den Befehl s3
rb
.
Syntax
$
aws s3 rb <target> [--options]
Im folgenden Beispiel wird der Bucket s3://amzn-s3-demo-bucket
entfernt.
$
aws s3 rb
s3://amzn-s3-demo-bucket
Standardmäßig muss der Bucket leer sein, damit der Vorgang erfolgreich ist. Zum Entfernen eines Buckets, der nicht leer ist, müssen Sie die Option --force
hinzufügen. Wenn Sie einen versionsgesteuerten Bucket verwenden, der bereits gelöschte–aber aufbewahrte–Objekte enthält, lässt dieser Befehl nicht zu, dass Sie den Bucket entfernen. Sie müssen zunächst alle Inhalte entfernen.
Im folgenden Beispiel werden alle Objekte und Präfixe im Bucket gelöscht und anschließend der Bucket gelöscht.
$
aws s3 rb
s3://amzn-s3-demo-bucket
--force
Objekte löschen
Um Objekte in einem Bucket oder in Ihrem lokalen Verzeichnis zu löschen, verwenden Sie den Befehl s3
rm
.
Syntax
$
aws s3 rm <target> [--options]
Ein paar gängige Optionen für diesen Befehl und Beispiele finden Sie unter Häufig verwendete Optionen für s3-Befehle. Eine vollständige Liste der Optionen finden Sie unter s3
rm
in der AWS CLI -Befehlsreferenz.
Im folgenden Beispiel wird filename.txt
aus s3://amzn-s3-demo-bucket/example
gelöscht.
$
aws s3 rm s3://amzn-s3-demo-bucket/example/filename.txt
Im folgenden Beispiel werden alle Objekte aus s3://amzn-s3-demo-bucket/example
mit der Option --recursive
gelöscht.
$
aws s3 rm s3://amzn-s3-demo-bucket/example --recursive
Verschieben von Objekten
Verwenden Sie den Befehl s3
mv
, um Objekte aus einem Bucket oder einem lokalen Verzeichnis zu verschieben. Der s3 mv
Befehl kopiert das Quellobjekt oder die Quelldatei an das angegebene Ziel und löscht dann das Quellobjekt oder die Quelldatei.
Syntax
$
aws s3 mv <source> <target> [--options]
Ein paar gängige Optionen für diesen Befehl und Beispiele finden Sie unter Häufig verwendete Optionen für s3-Befehle. Eine vollständige Liste der verfügbaren Optionen finden Sie unter s3
mv
in der AWS CLI -Befehlsreferenz.
Warnung
Wenn Sie in Ihrer Amazon S3-Quelle ARNs oder Ihrem Amazon S3-Ziel irgendeine Art von Access Point- oder Access Point-Aliasnamen verwenden, müssen Sie besonders darauf achtenURIs, dass Ihr Amazon S3 S3-Quell- und Ziel-Alias in verschiedene zugrunde liegende Buckets URIs aufgelöst werden. Wenn Quell- und Ziel-Bucket identisch sind, kann die Quelldatei oder das Objekt auf sich selbst verschoben werden, was zu einem versehentlichen Löschen Ihrer Quelldatei oder Ihres Quellobjekts führen kann. Um zu überprüfen, ob Quell- und Ziel-Bucket nicht identisch sind, verwenden Sie den --validate-same-s3-paths
Parameter oder setzen Sie die Umgebungsvariable AWS_CLI_S3_MV_VALIDATE_SAME_S3_PATHS
auf. true
Im folgenden Beispiel werden alle Objekte von s3://amzn-s3-demo-bucket/example
nach s3://amzn-s3-demo-bucket/
verschoben.
$
aws s3 mv s3://amzn-s3-demo-bucket/example s3://amzn-s3-demo-bucket/
Im folgenden Beispiel wird eine lokale Datei mit dem s3 mv
-Befehl aus Ihrem aktuellen Arbeitsverzeichnis in den Amazon-S3-Bucket verschoben.
$
aws s3 mv filename.txt s3://amzn-s3-demo-bucket
Im folgenden Beispiel wird eine Datei aus Ihrem Amazon-S3-Bucket in Ihr aktuelles Arbeitsverzeichnis verschoben, wobei ./
Ihr aktuelles Arbeitsverzeichnis angibt.
$
aws s3 mv s3://amzn-s3-demo-bucket/filename.txt ./
Kopieren von Objekten
Verwenden Sie den Befehl s3
cp
, um Objekte aus einem Bucket oder einem lokalen Verzeichnis zu verschieben.
Syntax
$
aws s3 cp <source> <target> [--options]
Sie können den Bindestrich-Parameter für das Dateistreaming an die Standardeingabe (stdin
) oder die Standardausgabe (stdout
) verwenden.
Warnung
Wenn Sie verwenden PowerShell, kann die Shell die Kodierung einer Eingabe oder Ausgabe ändern CRLF oder eine an die Pipeline CRLF weitergeleitete Eingabe oder Ausgabe oder eine umgeleitete Ausgabe hinzufügen.
Der Befehl s3 cp
verwendet die folgende Syntax, um einen Dateistream von stdin
in einen angegebenen Bucket hochzuladen.
Syntax
$
aws s3 cp - <target> [--options]
Der s3 cp
-Befehl verwendet die folgende Syntax, um einen Amazon-S3-Dateistream für stdout
herunterzuladen.
Syntax
$
aws s3 cp <target> [--options] -
Ein paar gängige Optionen für diesen Befehl und Beispiele finden Sie unter Häufig verwendete Optionen für s3-Befehle. Eine vollständige Liste der Optionen finden Sie unter s3
cp
in der AWS CLI -Befehlsreferenz.
Im folgenden Beispiel werden alle Objekte von s3://amzn-s3-demo-bucket/example
nach s3://amzn-s3-demo-bucket/
kopiert.
$
aws s3 cp s3://amzn-s3-demo-bucket/example s3://amzn-s3-demo-bucket/
Im folgenden Beispiel wird eine lokale Datei mit dem s3 cp
-Befehl aus Ihrem aktuellen Arbeitsverzeichnis in den Amazon-S3-Bucket kopiert.
$
aws s3 cp filename.txt s3://amzn-s3-demo-bucket
Im folgenden Beispiel wird eine Datei aus Ihrem Amazon-S3-Bucket in Ihr aktuelles Arbeitsverzeichnis kopiert, wobei ./
Ihr aktuelles Arbeitsverzeichnis angibt.
$
aws s3 cp s3://amzn-s3-demo-bucket/filename.txt ./
Im folgenden Beispiel wird echo verwendet, um den Text „hello world“ in die Datei s3://bucket-name/filename.txt
zu streamen.
$
echo "hello world" | aws s3 cp - s3://amzn-s3-demo-bucket/filename.txt
Im folgenden Beispiel wird die s3://amzn-s3-demo-bucket/filename.txt
-Datei nach stdout
gestreamt und der Inhalt an die Konsole ausgegeben.
$
aws s3 cp s3://amzn-s3-demo-bucket/filename.txt -
hello world
Das folgende Beispiel streamt den Inhalt von s3://bucket-name/pre
nach stdout
, verwendet den Befehl bzip2
zum Komprimieren der Dateien und lädt die neue komprimierte Datei namens key.bz2
nach s3://bucket-name
hoch.
$
aws s3 cp s3://amzn-s3-demo-bucket/pre - | bzip2 --best | aws s3 cp - s3://amzn-s3-demo-bucket/key.bz2
Synchronisieren von Objekten
Der Befehl s3
sync
synchronisiert die Inhalte von einem Bucket und einem Verzeichnis oder die Inhalte von zwei Buckets. Normalerweise werden mit s3 sync
fehlende oder veraltete Dateien bzw. Objekte zwischen Quelle und Ziel kopiert. Sie können aber auch die Option --delete
hinzufügen, um Dateien oder Objekte, die nicht in der Quelldatei vorhanden sind, aus dem Ziel zu entfernen.
Syntax
$
aws s3 sync <source> <target> [--options]
Ein paar gängige Optionen für diesen Befehl und Beispiele finden Sie unter Häufig verwendete Optionen für s3-Befehle. Eine vollständige Liste der Optionen finden Sie unter s3
sync
in der AWS CLI -Befehlsreferenz.
Das folgende Beispiel synchronisiert den Inhalt eines Amazon S3 S3-Präfixes mit dem Namen path im Bucket amzn-s3-demo-bucket mit dem aktuellen Arbeitsverzeichnis.
s3 sync
aktualisiert alle Dateien mit einer anderen Größe oder geänderten Zeit als Dateien mit demselben Namen am Ziel. Die Ausgabe enthält bestimmte Vorgänge, die während der Synchronisierung ausgeführt wurden. Beachten Sie, dass die Operation rekursiv das Unterverzeichnis MySubdirectory
und seinen Inhalt mit s3://amzn-s3-demo-bucket/path/MySubdirectory
synchronisiert.
$
aws s3 sync . s3://mamzn-s3-demo-bucket/path
upload: MySubdirectory\MyFile3.txt to s3://amzn-s3-demo-bucket/path/MySubdirectory/MyFile3.txt upload: MyFile2.txt to s3://amzn-s3-demo-bucket/path/MyFile2.txt upload: MyFile1.txt to s3://amzn-s3-demo-bucket/path/MyFile1.txt
Das folgende Beispiel, das das vorherige erweitert, zeigt die Verwendung der Option --delete
.
// Delete local file
$
rm ./MyFile1.txt
// Attempt sync without --delete option - nothing happens
$
aws s3 sync . s3://amzn-s3-demo-bucket/path
// Sync with deletion - object is deleted from bucket
$
aws s3 sync . s3://amzn-s3-demo-bucket/path --delete
delete: s3://amzn-s3-demo-bucket/path/MyFile1.txt // Delete object from bucket
$
aws s3 rm s3://amzn-s3-demo-bucket/path/MySubdirectory/MyFile3.txt
delete: s3://amzn-s3-demo-bucket/path/MySubdirectory/MyFile3.txt // Sync with deletion - local file is deleted
$
aws s3 sync s3://amzn-s3-demo-bucket/path . --delete
delete: MySubdirectory\MyFile3.txt // Sync with Infrequent Access storage class
$
aws s3 sync . s3://amzn-s3-demo-bucket/path --storage-class STANDARD_IA
Bei Verwendung der Option --delete
können mit den Optionen --exclude
und --include
die Dateien oder Objekte gefiltert werden, die während einer s3
sync
-Operation gelöscht werden sollen. In diesem Fall muss die Parameterzeichenfolge Dateien angeben, die für das Zielverzeichnis oder den Bucket vom Löschen ausgenommen oder zum Löschen hinzugefügt werden. Es folgt ein Beispiel.
Assume local directory and s3://amzn-s3-demo-bucket/path currently in sync and each contains 3 files: MyFile1.txt MyFile2.rtf MyFile88.txt '''
// Sync with delete, excluding files that match a pattern. MyFile88.txt is deleted, while remote MyFile1.txt is not.
$
aws s3 sync . s3://amzn-s3-demo-bucket/path --delete --exclude "path/MyFile?.txt"
delete: s3://amzn-s3-demo-bucket/path/MyFile88.txt '''
// Sync with delete, excluding MyFile2.rtf - local file is NOT deleted
$
aws s3 sync s3://amzn-s3-demo-bucket/path . --delete --exclude "./MyFile2.rtf"
download: s3://amzn-s3-demo-bucket/path/MyFile1.txt to MyFile1.txt ''' // Sync with delete, local copy of MyFile2.rtf is deleted
$
aws s3 sync s3://amzn-s3-demo-bucket/path . --delete
delete: MyFile2.rtf
Häufig verwendete Optionen für s3-Befehle
Die folgenden Optionen werden häufig für die in diesem Thema beschriebenen Befehle verwendet. https://docs.aws.amazon.com/cli/latest/reference/
- acl
-
s3 sync
unds3 cp
können die Option--acl
verwenden. Auf diese Weise können Sie die Zugriffsberechtigungen für Dateien festlegen, die nach Amazon S3 kopiert werden. Die Option--acl
akzeptiert die Werteprivate
,public-read
undpublic-read-write
. Weitere Informationen finden Sie unter Canned ACL im Amazon S3 S3-Benutzerhandbuch.$
aws s3 sync . s3://amzn-s3-demo-bucket/path --acl public-read
- exclude
-
Wenn Sie die Befehle
s3 cp
,s3 mv
,s3 sync
oders3 rm
verwenden, können Sie die Ergebnisse mit der Option--exclude
oder--include
filtern. Die Option--exclude
legt Regeln fest, um nur Objekte vom Befehl auszuschließen, und die Optionen gelten in der angegebenen Reihenfolge. Dies wird im folgenden Beispiel veranschaulicht.Local directory contains 3 files: MyFile1.txt MyFile2.rtf MyFile88.txt
// Exclude all .txt files, resulting in only MyFile2.rtf being copied
$
aws s3 cp . s3://amzn-s3-demo-bucket/path --exclude "*.txt"
// Exclude all .txt files but include all files with the "MyFile*.txt" format, resulting in, MyFile1.txt, MyFile2.rtf, MyFile88.txt being copied
$
aws s3 cp . s3://amzn-s3-demo-bucket/path --exclude "*.txt" --include "MyFile*.txt"
// Exclude all .txt files, but include all files with the "MyFile*.txt" format, but exclude all files with the "MyFile?.txt" format resulting in, MyFile2.rtf and MyFile88.txt being copied
$
aws s3 cp . s3://amzn-s3-demo-bucket/path --exclude "*.txt" --include "MyFile*.txt" --exclude "MyFile?.txt"
- include
-
Wenn Sie die Befehle
s3 cp
,s3 mv
,s3 sync
oders3 rm
verwenden, können Sie die Ergebnisse mit der Option--exclude
oder--include
filtern. Die Option--include
legt Regeln fest, um nur die für den Befehl angegebenen Objekte einzuschließen, und die Optionen gelten in der angegebenen Reihenfolge. Dies wird im folgenden Beispiel veranschaulicht.Local directory contains 3 files: MyFile1.txt MyFile2.rtf MyFile88.txt
// Include all .txt files, resulting in MyFile1.txt and MyFile88.txt being copied
$
aws s3 cp . s3://amzn-s3-demo-bucket/path --include "*.txt"
// Include all .txt files but exclude all files with the "MyFile*.txt" format, resulting in no files being copied
$
aws s3 cp . s3://amzn-s3-demo-bucket/path --include "*.txt" --exclude "MyFile*.txt"
// Include all .txt files, but exclude all files with the "MyFile*.txt" format, but include all files with the "MyFile?.txt" format resulting in MyFile1.txt being copied
$
aws s3 cp . s3://amzn-s3-demo-bucket/path --include "*.txt" --exclude "MyFile*.txt" --include "MyFile?.txt"
- grant
-
Die Befehle
s3 cp
,s3 mv
unds3 sync
enthalten die Option--grants
. Diese kann genutzt werden, um Berechtigungen für das Objekt an bestimmte Benutzer oder Gruppen zu erteilen. Mithilfe der folgenden Syntax legen Sie für die Option--grants
eine Liste von Berechtigungen fest. Ersetzen SiePermission
,Grantee_Type
undGrantee_ID
durch Ihre eigenen Werte.Syntax
--grants
Permission
=Grantee_Type
=Grantee_ID
[Permission
=Grantee_Type
=Grantee_ID
...]Jeder Wert enthält die folgenden Elemente:
-
Permission
— Gibt die erteilten Berechtigungen an. Mögliche Einstellungen sindread
,readacl
,writeacl
oderfull
. -
Grantee_Type
— Gibt an, wie der Empfänger identifiziert werden kann. Mögliche Einstellungen sinduri
,emailaddress
oderid
. -
Grantee_ID
— Spezifiziert den Empfänger anhand vonGrantee_Type
.-
uri
— Die der Gruppe. URI Weitere Informationen finden Sie unter Wer ist ein Berechtigungsempfänger? -
emailaddress
– Die E-Mail-Adresse des Kontos. -
id
– Die kanonische ID des Kontos.
-
Weitere Informationen zur Amazon-S3-Zugriffssteuerung finden Sie unter Zugriffssteuerung.
Im folgenden Beispiel wird ein Objekt in einen Bucket kopiert. Es werden
read
-Berechtigungen für das Objekt für alle erteilt. Das Konto, das zufull
gehört, erhältread
-Berechtigungen (readacl
,writeacl
unduser@example.com
).$
aws s3 cp file.txt s3://amzn-s3-demo-bucket/ --grants
read=uri=http://acs.amazonaws.com/groups/global/AllUsers full=emailaddress=user@example.com
Sie können auch eine nicht standardmäßige Speicherklasse (
REDUCED_REDUNDANCY
oderSTANDARD_IA
) für Objekte angeben, die Sie in Amazon S3 hochladen. Verwenden Sie dazu die Option--storage-class
.$
aws s3 cp file.txt s3://amzn-s3-demo-bucket/
--storage-class REDUCED_REDUNDANCY
-
- recursive
-
Wenn Sie diese Option verwenden, wird der Befehl für alle Dateien oder Objekte unter dem angegebenen Verzeichnis oder Präfix ausgeführt. Das folgende Beispiel löscht
s3://amzn-s3-demo-bucket/path
und seinen gesamten Inhalt.$
aws s3 rm s3://amzn-s3-demo-bucket/path --recursive
Ressourcen
AWS CLI Referenz:
Service-Referenz:
-
Arbeiten mit Amazon S3 S3-Buckets im Amazon S3 S3-Benutzerhandbuch
-
Arbeiten mit Amazon S3 S3-Objekten im Amazon S3 S3-Benutzerhandbuch
-
Schlüssel mit einem Präfix und einem Trennzeichen hierarchisch auflisten im Amazon S3 S3-Benutzerhandbuch