Wie optimiere ich die Leistung, wenn ich AWS CLI verwende, um große Dateien auf Amazon S3 hochzuladen?
Ich möchte die Leistung optimieren, wenn ich die AWS Command Line Interface (AWS CLI) verwende, um große Dateien (1 GB oder größer) auf Amazon Simple Storage Service (Amazon S3) hochzuladen.
Kurzbeschreibung
Wenn du große Dateien auf Amazon S3 hochlädst, empfiehlt es sich, mehrteilige Uploads zu verwenden. Konfiguriere außerdem bei mehrteiligen Uploads einen Schwellenwert für die Objektgröße. Wenn du die AWS CLI zum Hochladen von Dateien verwendest, führen alle übergeordneten aws s3-Befehle automatisch einen mehrteiligen Upload durch, wenn die Objektgröße den Schwellenwert überschreitet. Zu diesen übergeordneten Befehlen gehören aws s3 cp und aws s3 sync.
Wähle eine der folgenden Methoden aus, um die Leistung zu optimieren:
- Verwende den auf AWS Common Runtime (CRT) basierenden Client und passe die Konfigurationen für den mehrteiligen Upload an. Verwende diese Methode für umfangreiche Datenübertragungen oder komplexe Workloads.
- Aktiviere Amazon S3 Transfer Acceleration. Verwende diese Methode für geografisch entfernte Übertragungen.
Lösung
Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.
Option 1: Den CRT-basierten Client mit AWS CLI verwenden
Gehe wie folgt vor, um den CRT-basierten Client zu verwenden:
-
Füge den preferred_transfer_client zu der AWS-CLI-Konfigurationsdatei hinzu:
[default]s3 = preferred_transfer_client = crtOder führe den configure-Befehl aus:
aws configure set default.s3.preferred_transfer_client crt -
Führe den cp-Befehl aus, um zu überprüfen, ob der CRT-Client aktiv ist:
aws s3 cp large-file.zip s3://your-bucket-name/ --debug 2>&1 | grep -i crtBeispielausgabe, wenn der CRT-Client aktiv ist:
aws s3 cp large-file.zip s3://your-bucket-name/ --debug 2>&1 | grep -i crt \[DEBUG\] \[2025-12-01T07:58:46Z\] \[00007fe20f9b9340\] \[tls-handler\] - Set security policy to AWS-CRT-SDK-TLSv1.0-2025-PQ (minimum\_tls\_version: 128; cipher\_pref: 0) 2025-12-01 07:58:46,742 - MainThread - s3transfer.crt - DEBUG - Recommended CRT throughput target in gbps: None 2025-12-01 07:58:46,742 - MainThread - s3transfer.crt - DEBUG - Using CRT throughput target in gbps: 10.0 -
(Optional) Lege die target_bandwidth fest, um den maximalen Durchsatz zu steuern. Füge der AWS-CLI-Konfigurationsdatei einen target_bandwidth-Wert hinzu:
\[default\] s3 = preferred\_transfer\_client = crt target\_bandwidth = 1Gb/sOder führe den configure-Befehl aus:
aws configure set default.s3.target_bandwidth 1Gb/sHinweis: Konfiguriere dies nur, wenn du bestimmte Bandbreitenanforderungen hast. AWS CLI optimiert die Bandbreite automatisch auf der Grundlage der Systemfunktionen. Eine Fehlkonfiguration dieses Werts kann die Netzwerk- oder Systemressourcen überlasten. Es hat sich bewährt, diese Option auf Null zu belassen.
Nachdem du den CRT-basierten Client aktiviert hast, verwendet AWS CLI den Client automatisch für Datei-Uploads. Dies verbessert die Leistung und Zuverlässigkeit im Vergleich zur standardmäßigen AWS-CLI, insbesondere bei großen Datei-Uploads.
Passe mehrteilige Uploads mit diesen Parametern an:
| Parameter | Beschreibung | Standardwert | Empfehlung |
|---|---|---|---|
| max_bandwidth | Maximale Bandbreite zum Hochladen von Daten auf Amazon S3 | Keine (unbegrenzt) | Diese Einstellung verhindert eine Überlastung des Netzwerks. |
| max_concurrent_requests | Anzahl gleichzeitiger Anforderungen an Amazon S3 | 10 | Erhöhe den Wert auf 20–50 für Verbindungen mit hoher Bandbreite und ausreichenden Systemressourcen. |
| max_queue_size | Maximale Anzahl von Aufgaben in der Übertragungswarteschlange | 1000 | Erhöhe den Wert für Batch-Operationen mit vielen Dateien. |
| multipart_chunksize | Größe jedes hochgeladenen Teils | 8 MB | Erhöhe den Wert auf 16–64 MB bei Dateien von über 1 GB mit weniger als 10 000 Blöcken. |
| multipart_threshold | Dateigröße, die einen mehrteiligen Upload auslöst | 8 MB | Behalte die Standardeinstellung für die meisten [?]-Anwendungsfälle. |
Hinweis: Stelle sicher, dass der Computer über genügend Ressourcen verfügt, um die maximale Anzahl gleichzeitiger Anforderungen zu unterstützen, die du benötigst.
Option 2: S3 Transfer Acceleration aktivieren
Amazon S3 Transfer Acceleration bietet schnelle und sichere Übertragungen über große Entfernungen zwischen dem Client und Amazon S3. Transfer Acceleration verwendet die global verteilten Edge-Standorte von Amazon CloudFront.
Bei Transfer Acceleration fallen zusätzliche Gebühren an. Überprüfe daher unbedingt die Preise. Überprüfe das Tool Amazon S3 Transfer Acceleration Speed Comparison um festzustellen, ob Transfer Acceleration die Übertragungsgeschwindigkeiten für den Anwendungsfall verbessert.
Hinweis: Transfer Acceleration unterstützt CopyObject-Kopien in AWS-Regionen nicht.
Gehe wie folgt vor, um Amazon S3 Transfer Acceleration zu aktivieren:
-
Aktiviere S3 Transfer Acceleration für deinen Bucket.
-
Gib den beschleunigten Endpunkt für die Übertragung einer einzelnen Datei an:
aws s3 cp large-file.zip s3://your-bucket-name/ --endpoint-url https://s3-accelerate.amazonaws.comOder konfiguriere den Endpunkt in der CLI-Konfigurationsdatei so, dass er für alle Dateiübertragungen gilt:
\[default\] s3 = use\_accelerate\_endpoint = true
Ähnliche Informationen
- Themen
- Storage
- Sprache
- Deutsch
Ähnliche Videos


Relevanter Inhalt
AWS OFFICIALAktualisiert vor 2 Jahren