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.
Hochladen und Kopieren von Objekten mit mehrteiligen Uploads
Mit dem mehrteiligen Upload können Sie ein einzelnes Objekt als Satz aus mehreren Teilen hochladen. Jeder Teil ist ein zusammenhängender Teil der Daten des Objekts. Sie können diese Objektteile unabhängig und in beliebiger Reihenfolge hochladen. Wenn die Übertragung eines Teils fehlschlägt, können Sie das Teil erneut übertragen, ohne dass dies Auswirkungen auf andere Teile hat. Nachdem alle Teile Ihres Objekts hochgeladen sind, fügt Amazon S3 diese Teile zusammen und erstellt das Objekt. Wenn Ihre Objektgröße 100 MB erreicht, sollten Sie in der Regel mehrteilige Uploads verwenden, anstatt das Objekt in einem einzigen Vorgang hochzuladen.
Die Nutzung mehrteiliger Uploads bietet die folgenden Vorteile:
-
Verbesserter Durchsatz – Sie können die Teile parallel hochladen, um den Durchsatz zu erhöhen.
-
Schnelle Wiederherstellung bei Netzwerkproblemen – Die kleinere Teilegröße minimiert die Auswirkungen eines Neustarts eines fehlgeschlagenen Uploads aufgrund eines Netzwerkfehlers.
-
Anhalten und Fortsetzen von Objekt-Uploads – Sie können Objektteile mit der Zeit hochladen. Nachdem Sie einen mehrteiligen Upload initiiert haben, gibt es kein Ablaufdatum. Sie müssen den mehrteiligen Upload ausdrücklich abschließen oder abbrechen.
-
Starten Sie einen Upload, bevor Sie die endgültige Objektgröße kennen – Sie können ein Objekt hochladen, während Sie es noch erstellen.
Sie sollten den mehrteiligen Upload wie folgt verwenden:
-
Wenn Sie große Objekte über ein stabiles Netzwerk mit hoher Bandbreite hochladen, können Sie einen mehrteiligen Upload verwenden, um die Nutzung der verfügbaren Bandbreite zu maximieren. Hierzu laden Sie Objektteile parallel hoch, um von einer Multi-Threading-Leistung zu profitieren.
-
Wenn Sie einen Upload über ein instabiles Netzwerk ausführen, können Sie einen mehrteiligen Upload verwenden, um die Resilienz in Bezug auf Netzwerkfehler durch Vermeidung von Neustarts der Uploads zu vermeiden. Wenn Sie mehrteilige Uploads verwenden, müssen Sie nur die Teile erneut hochladen, deren Upload unterbrochen wurde. Sie müssen nicht das gesamte Objekt von Anfang an neu hochladen.
Anmerkung
Weitere Informationen zur Verwendung der Speicherklasse Amazon S3 Express One Zone mit Verzeichnis-Buckets finden Sie unter S3 Express One Zone und Arbeiten mit Verzeichnis-Buckets. Weitere Informationen zur Verwendung mehrteiliger Uploads mit S3 Express One Zone und Verzeichnis-Buckets finden Sie unter Mehrteilige Uploads mit Verzeichnis-Buckets verwenden.
Mehrteiliger Upload-Prozess
Der mehrteilige Upload ist ein Prozess in drei Schritten: Sie beginnen den Upload, laden die Teile des Objekts hoch und schließen den mehrteiligen Upload ab, wenn alle Teile hochgeladen wurden. Nach dem vollständigen Eingang der Daten aus dem mehrteiligen Upload erstellt Amazon S3 das Objekt anhand der hochgeladenen Teile. Dann können Sie auf das Objekt wie auf jedes andere Objekt in Ihrem Bucket zugreifen.
Sie können alle laufenden mehrteiligen Uploads auflisten oder eine Liste der Teile anfordern, die Sie für einen bestimmten Multipart-Upload hochgeladen haben. Alle Vorgänge werden in diesem Abschnitt erklärt.
Initiieren des mehrteiligen Uploads
Wenn Sie eine Anfrage zum Initiieren eines mehrteiligen Uploads senden, gibt Amazon S3 eine Antwort mit einer Upload-ID zurück, als eindeutige Kennung für den Multipart-Upload. Sie müssen diese Upload-ID immer angeben, wenn Sie Teile hochladen, die Teile auflisten, einen Upload abschließen oder einen Upload abbrechen. Wenn Sie Metadaten bereitstellen möchten, die das hochzuladende Objekt beschreiben, müssen sie in der Anforderung auf Initiierung des mehrteiligen Uploads angegeben werden.
Teile hochladen
Beim Hochladen eines Teils müssen Sie zusätzlich zur Upload-ID eine Teilenummer angeben. Sie können jede Teilenummer zwischen 1 und 10.000 wählen. Die Teilenummer identifiziert eindeutig einen Teil und seine Position im Objekt, das Sie hochladen. Die von Ihnen gewählte Teilenummer muss nicht fortlaufend sein (möglich sind z. B. 1, 5 und 14). Wenn Sie einen neuen Teil mit derselben Teilenummer hochladen wie bereits einmal zuvor, wird der früher hochgeladene Teil überschrieben.
Wenn Sie ein Teil hochladen, gibt Amazon S3 ein Entitäts-Tag (ETag) für das Teil als Header in der Antwort zurück. Für jeden Upload eines Teils müssen Sie die Artikelnummer und den ETag Wert aufzeichnen. Sie müssen diese Werte in die spätere Anforderung einschließen, um den mehrteiligen Upload abzuschließen. Jedes Teil wird zum ETag Zeitpunkt des Uploads sein eigenes haben. Sobald der mehrteilige Upload jedoch abgeschlossen und alle Teile konsolidiert sind, werden alle Teile ETag als Prüfsumme von Prüfsummen unter eins angezeigt.
Anmerkung
Nachdem Sie einen mehrteiligen Upload gestartet und einen oder mehrere Teile hochgeladen haben, müssen Sie den mehrteiligen Upload abschließen oder abbrechen, damit keine Gebühren für die Speicherung der hochgeladenen Teile anfallen. Erst nach dem Abschluss oder Abbruch eines mehrteiligen Uploads gibt Amazon S3 den Speicher für die Teile frei und stoppt die Berechnung von Gebühren für die Speicherung der Teile.
Wenn Sie einen mehrteiligen Upload abbrechen, können Sie mit dieser Upload-ID keine Teile mehr hochladen. Wenn der mehrteilige Upload abgebrochen wird, während Teile hochgeladen werden, können diese Uploads auch nach dem Abbruch des Uploads erfolgreich abgeschlossen werden oder fehlschlagen. Um sicherzustellen, dass der von allen Teilen verbrauchte Speicherplatz freigegeben wird, dürfen Sie einen mehrteiligen Upload erst dann abbrechen, wenn alle Uploads abgeschlossen wurden.
Abschließen eines mehrteiligen Uploads
Wenn Sie einen mehrteiligen Upload abschließen, erstellt Amazon S3 ein Objekt, indem die Teile in aufsteigender Reihenfolge auf Grundlage der Teilenummer verkettet werden. Wenn Sie Metadaten für das Objekt bei der Initiierung des mehrteiligen Uploads bereitgestellt haben, verknüpft Amazon S3 die Metadaten mit dem Objekt. Nach einer erfolgreich ausgeführten Abschlussanforderung sind die Teile nicht mehr vorhanden.
Ihre vollständige mehrteilige Upload-Anfrage muss die Upload-ID und eine Liste der beiden Artikelnummern und der entsprechenden Werte enthalten. ETag Die Amazon S3 S3-Antwort enthält eineETag, die die kombinierten Objektdaten eindeutig identifiziert. Dies ETag ist nicht unbedingt ein MD5 Hash der Objektdaten.
Beispielaufrufe mehrteiliger Uploads
Für dieses Beispiel nehmen wir an, dass Sie einen mehrteiligen Upload für eine 100-GB-Datei generieren. In diesem Fall hätten Sie die folgenden API Aufrufe für den gesamten Prozess. Es würde insgesamt 1002 API Anrufe geben.
-
Ein
CreateMultipartUpload
-Aufruf zum Starten des Prozesses -
1 000 individuelle
UploadPart
-Aufrufe, mit denen jeweils ein Teil von 100 MB für die Gesamtgröße von 100 GB hochgeladen wird -
Ein
CompleteMultipartUpload
-Aufruf zum Beenden des Prozesses
Auflistungen mehrteiliger Uploads
Sie können alle Teile eines bestimmten Multipart-Uploads oder alle laufenden mehrteiligen Uploads auflisten. Die Operation für die Teileauflistung gibt die Teileinformationen zurück, die Sie für einen bestimmten mehrteiligen Upload hochgeladen haben. Für jeden Abruf einer Teileauflistung gibt Amazon S3 die Teileinformationen für einen angegebenen mehrteiligen Upload bis zu maximal 1.000 Teilen zurück. Wenn im Multipart-Upload mehr als 1.000 Teile vorhanden sind, müssen Sie eine Reihe von Anforderungen auf Teileauflistung senden, um alle Teile abzurufen. Beachten Sie, dass die zurückgegebene Teileauflistung keine Teile enthält, die noch nicht vollständig hochgeladen wurden. Bei Verwendung der Operation Mehrteilige Uploads auflisten können Sie eine Liste aller mehrteiligen Uploads erhalten, die sich in Bearbeitung befinden.
Ein mehrteiliger Upload in Verarbeitung ist ein Upload, den Sie gestartet haben, der aber noch nicht abgeschlossen ist oder abgebrochen wurde. Jeder Anforderung gibt bis zu 1.000 mehrteilige Uploads zurück. Wenn mehr als 1 000 mehrteilige Uploads vorhanden sind, müssen Sie zusätzliche Anforderungen senden, um die verbleibenden mehrteiligen Uploads abzurufen. Verwenden Sie die zurückgegebene Liste nur zur Überprüfung. Verwenden Sie das Ergebnis dieser Auflistung nicht, wenn Sie eine Anforderung für den Abschluss eines mehrteiligen Uploads senden. Pflegen Sie stattdessen Ihre eigene Liste mit den Artikelnummern, die Sie beim Hochladen von Teilen angegeben haben, und den entsprechenden ETag Werten, die Amazon S3 zurückgibt.
Prüfsummen mit mehrteiligen Upload-Operationen
Wenn Sie ein Objekt auf Amazon S3 hochladen, können Sie einen Prüfsummenalgorithmus angeben, den Amazon S3 verwenden soll. Amazon S3 verwendet MD5 standardmäßig zur Überprüfung der Datenintegrität. Sie können jedoch einen zusätzlichen Prüfsummenalgorithmus angeben, der verwendet werden soll. Bei Verwendung MD5 berechnet Amazon S3 die Prüfsumme des gesamten mehrteiligen Objekts, nachdem der Upload abgeschlossen ist. Diese Prüfsumme ist keine Prüfsumme des gesamten Objekts, sondern eine Prüfsumme der Prüfsummen für jeden einzelnen Teil.
Wenn Sie Amazon S3 anweisen, zusätzliche Prüfsummen zu verwenden, berechnet Amazon S3 den Prüfsummenwert für jeden Teil und speichert die Werte. Sie können das API oder verwendenSDK, um den Prüfsummenwert für einzelne Teile abzurufen, indem Sie oder verwenden. GetObject
HeadObject
Wenn Sie die Prüfsummenwerte für einzelne Teile von mehrteiligen Uploads abrufen möchten, die noch in Bearbeitung sind, können Sie ListParts
verwenden.
Wichtig
Wenn Sie einen mehrteiligen Upload mit zusätzlichen Prüfsummen verwenden, müssen die mehrteiligen Teilenummern aufeinander folgende Teilenummern sein. Wenn Sie zusätzliche Prüfsummen verwenden und versuchen, eine mehrteilige Upload-Anfrage mit nicht aufeinanderfolgenden Artikelnummern abzuschließen, generiert Amazon S3 einen Fehler. HTTP 500 Internal Server Error
Weitere Informationen darüber, wie Prüfsummen bei mehrteiligen Upload-Objekten funktionieren, finden Sie unter. Überprüfung der Objektintegrität
Ein end-to-end Verfahren zum Hochladen eines Objekts mit mehrteiligem Upload mit einer zusätzlichen Prüfsumme finden Sie unter. Tutorial: Laden Sie ein Objekt durch mehrteiligen Upload hoch und überprüfen Sie seine Datenintegrität
Gleichzeitige mehrteilige Upload-Vorgänge
In einer verteilten Entwicklungsumgebung ist es für Ihre Anwendung möglich, mehrere Updates gleichzeitig für dasselbe Objekt zu initiieren. Ihre Anwendung kann möglicherweise mehrere Multipart-Uploads mit demselben Objektschlüssel initiieren. Für jeden dieser Uploads kann Ihre Anwendung Teile hochladen und eine Anfrage auf Abschluss des Uploads an Amazon S3 senden, um das Objekt zu erstellen. Wenn die Buckets die S3-Versioning aktiviert haben, wird beim Abschluss eines mehrteiligen Uploads immer eine neue Version erstellt. Wenn Sie mehrere mehrteilige Uploads initiieren, die denselben Objektschlüssel in einem Bucket mit aktivierter Versionierung verwenden, wird die aktuelle Version des Objekts anhand der zuletzt gestarteten Version des Objekts bestimmt (). createdDate
Nehmen wir zum Beispiel an, dass Sie um 10:00 Uhr eine CreateMultipartUpload Anfrage für ein Objekt starten. Dann reichen Sie um 11:00 Uhr eine zweite CreateMultipartUpload
Anfrage für dasselbe Objekt ein. Da die zweite Anfrage zuletzt eingereicht wurde, entspricht das mit der Anfrage um 11:00 Uhr hochgeladene Objekt der aktuellen Version, auch wenn der erste Upload nach dem zweiten abgeschlossen ist. Bei Buckets, für die keine Versioning aktiviert ist, kann es sein, dass zwischen den Zeitpunkten der Initiierung bis zum Abschluss eines Multipart-Uploads eine andere Anforderung vorrangig ist.
Anmerkung
Es ist möglich, dass eine andere Anforderung zwischen dem Zeitpunkt der Initiierung und jenem des Abschlusses eines Multipart-Uploads stattgefunden hat. Wenn z. B. ein anderer Vorgang einen Schlüssel löscht, nachdem Sie einen mehrteiligen Upload mit diesem Schlüssel initiiert haben, aber bevor Sie ihn abschließen, kann die Antwort für den Abschluss des Multipart-Uploads möglicherweise eine erfolgreiche Objekterstellung anzeigen, ohne dass Sie das Objekt je zu Gesicht bekommen haben.
Verhindern Sie, dass beim mehrteiligen Upload Objekte mit identischen Schlüsselnamen hochgeladen werden
Sie können überprüfen, ob ein Objekt in Ihrem Bucket vorhanden ist, bevor Sie es mithilfe von bedingten Schreibvorgängen beim Hochladen erstellen. Dadurch kann verhindert werden, dass vorhandene Daten überschrieben werden. Durch bedingte Schreibvorgänge wird bestätigt, dass sich beim Hochladen kein Objekt mit demselben Schlüsselnamen bereits in Ihrem Bucket befindet.
Sie können bedingte Schreibvorgänge verwenden für PutObjectoder CompleteMultipartUploadAnfragen.
Weitere Informationen zu bedingten Anfragen finden Sie unterFügen Sie Vorbedingungen zu S3-Vorgängen mit bedingten Anfragen hinzu.
Mehrteiliger Upload und Preise
Nachdem Sie einen mehrteiligen Upload gestartet haben, behält Amazon S3 alle Teile bei, bis Sie den Upload abschließen oder abbrechen. Während seiner gesamten Lebensdauer werden Ihnen der gesamte Speicher, die Bandbreite und die Anforderungen für diesen mehrteiligen Upload und die zugehörigen Teile in Rechnung gestellt.
Diese Teile werden gemäß der Speicherklasse berechnet, die beim Hochladen der Teile angegeben wurde. Eine Ausnahme bilden Teile, die in S3 Glacier Flexible Retrieval oder S3 Glacier Deep Archive hochgeladen wurden. In Bearbeitung befindliche mehrteilige Teile für die Speicherklasse S3 Glacier Flexible Retrieval werden PUT bis zum Abschluss des Uploads als S3 Glacier Flexible Retrieval Staging Storage zu den Speichertarifen S3 Standard abgerechnet. Darüber hinaus werden sowohl als auch zu den CreateMultipartUpload S3-Standardtarifen UploadPart abgerechnet. Nur die CompleteMultipartUpload Anfrage wird zum Tarif S3 Glacier Flexible Retrieval abgerechnet. In ähnlicher Weise werden in Bearbeitung befindliche mehrteilige Teile für eine Speicherklasse PUT bis zur Speicherklasse S3 Glacier Deep Archive als S3 Glacier Flexible Retrieval Staging Storage zu den S3-Standardspeichertarifen abgerechnet, bis der Upload abgeschlossen ist, wobei nur die CompleteMultipartUpload Anfrage zu den S3 Glacier Deep Archive Archive-Tarifen berechnet wird.
Wenn Sie den mehrteiligen Upload abbrechen, löscht Amazon S3 Upload-Artefakte und alle Teile, die Sie hochgeladen haben. Die Berechnung wird eingestellt. Für das Löschen unvollständiger mehrteiliger Uploads fallen keine Gebühren für vorzeitiges Löschen an, unabhängig von der angegebenen Speicherklasse. Weitere Informationen zu Preisen finden Sie unter Amazon-S3-Preise
Anmerkung
Wir empfehlen, eine Lebenszyklusregel zu konfigurieren, durch die unvollständige mehrteilige Uploads nach einer bestimmten Anzahl von Tagen mit der Aktion AbortIncompleteMultipartUpload
gelöscht werden, um Ihre Speicherkosten gering zu halten. Weitere Informationen zum Erstellen einer Lebenszyklusregel zum Löschen unvollständiger mehrteiliger Uploads finden Sie unter Konfigurieren einer Bucket-Lebenszykluskonfiguration zum Löschen unvollständiger mehrteiliger Uploads.
API-Unterstützung für mehrteilige Uploads
Diese Bibliotheken bieten eine Abstraktion auf hoher Ebene, die das Hochladen von mehrteiligen Upload-Objekten vereinfacht. Wenn Ihre Anwendung dies erfordert, können Sie das jedoch direkt verwenden. REST API In den folgenden Abschnitten der Amazon Simple Storage Service API Reference wird das REST API für mehrteilige Uploads beschrieben.
Eine exemplarische Vorgehensweise für mehrteilige Uploads, die AWS Lambda-Funktionen verwendet, finden Sie unter Hochladen großer Objekte auf Amazon S3 mithilfe der mehrteiligen
AWS Command Line Interface Unterstützung für mehrteiliges Hochladen
In den folgenden Themen werden die Vorgänge für den mehrteiligen Upload AWS Command Line Interface beschrieben.
AWS SDK-Unterstützung für mehrteilige Uploads
Sie können eine verwenden AWS SDKs, um ein Objekt in Teilen hochzuladen. Eine Liste der AWS SDKs unterstützten API Aktionen finden Sie unter:
Mehrteiliger Upload API und Berechtigungen
Sie müssen über die erforderlichen Berechtigungen verfügen, um die Multipart-Upload-Vorgänge zu verwenden. Sie können Zugriffskontrolllisten (ACLs), die Bucket-Richtlinie oder die Benutzerrichtlinie verwenden, um Einzelpersonen Berechtigungen zur Ausführung dieser Operationen zu gewähren. In der folgenden Tabelle sind die erforderlichen Berechtigungen für verschiedene mehrteilige Upload-Operationen aufgeführtACLs, wenn Sie eine Bucket-Richtlinie oder eine Benutzerrichtlinie verwenden.
Aktion | Erforderliche Berechtigungen |
---|---|
Multipart-Upload erstellen |
Sie müssen die Aktion Der Bucket-Eigentümer kann anderen Prinzipalen erlauben, die Aktion |
Initiieren eines mehrteiligen Uploads |
Sie müssen die Aktion Der Bucket-Eigentümer kann anderen Prinzipalen erlauben, die Aktion |
Initiator | Containerelement, das identifiziert, wer den Multipart-Upload initiiert hat. Wenn es sich bei dem Initiator um einen handelt AWS-Konto, liefert dieses Element dieselben Informationen wie das Owner-Element. Wenn der Initiator ein IAM Benutzer ist, stellt dieses Element den Benutzer ARN und den Anzeigenamen bereit. |
Upload Part | Sie müssen die Aktion Der Bucket-Eigentümer muss dem Initiator erlauben, die Aktion |
Teil hochladen (kopieren) | Sie müssen die Aktion Damit der Initiator einen Teil eines Objekts hochladen kann, muss der Bucket-Besitzer dem Initiator eine Genehmigung für die Ausführung der Aktion |
Abschließen eines mehrteiligen Uploads | Sie müssen die Aktion Der Bucket-Eigentümer muss dem Initiator erlauben, die Aktion |
Mehrteiligen Upload abbrechen | Sie müssen die Aktion Standardmäßig dürfen der Bucket-Besitzer und der Initiator des mehrteiligen Uploads diese Aktion im Rahmen der IAM Bucket-Richtlinien ausführen. Wenn der Initiator ein IAM Benutzer ist, darf dieser Benutzer den AWS-Konto mehrteiligen Upload auch beenden. Bei VPC Endpunktrichtlinien erhält der Initiator des mehrteiligen Uploads nicht automatisch die Erlaubnis, die Aktion auszuführen. Zusätzlich zu diesen Standardberechtigungen, kann der Bucket-Eigentümer anderen Prinzipalen erlauben, die Aktion |
Teile auflisten | Sie müssen die Aktion Standardmäßig kann der Bucket-Eigentümer Teileauflistungen von Multipart-Uploads in seinem Bucket anfordern. Der Initiator des mehrteiligen Uploads hat die Berechtigung, Teileauflistungen des spezifischen Multipart-Uploads aufzulisten. Wenn der Initiator des mehrteiligen Uploads ein IAM Benutzer ist, hat der Benutzer, der die AWS-Konto Kontrolle hat, IAM auch die Berechtigung, Teile dieses Uploads aufzulisten. Zusätzlich zu diesen Standardberechtigungen, kann der Bucket-Eigentümer anderen Prinzipalen erlauben, die Aktion |
List Multipart Uploads | Sie müssen die Aktion Zusätzlich zu diesen Standardberechtigungen, kann der Bucket-Eigentümer anderen Prinzipalen erlauben, die Aktion |
AWS KMS Die damit verbundenen Berechtigungen verschlüsseln und entschlüsseln |
Um einen mehrteiligen Upload mit Verschlüsselung unter Verwendung eines AWS Key Management Service (AWS KMS) KMS -Schlüssels durchzuführen, muss der Anforderer über Berechtigungen für die Wenn Ihr IAM Benutzer oder Ihre Rolle dem KMS Schlüssel entspricht AWS-Konto , müssen Sie über diese Berechtigungen für die Schlüsselrichtlinie verfügen. Wenn Ihr IAM Benutzer oder Ihre Rolle zu einem anderen Konto als dem KMS Schlüssel gehört, müssen Sie über die erforderlichen Berechtigungen sowohl für die Schlüsselrichtlinie als auch für Ihren IAM Benutzer oder Ihre Rolle verfügen. |
Informationen zur Beziehung zwischen ACL Berechtigungen und Berechtigungen in Zugriffsrichtlinien finden Sie unterZuordnung von ACL Berechtigungen und Zugriffsrichtlinienberechtigungen. Informationen zu IAM Benutzern, Rollen und bewährten Methoden finden Sie im Benutzerhandbuch unter IAMIdentitäten (Benutzer, Benutzergruppen und Rollen). IAM
Themen
- Konfigurieren einer Bucket-Lebenszykluskonfiguration zum Löschen unvollständiger mehrteiliger Uploads
- Hochladen eines Objekts mit Multipart-Upload
- Hochladen eines Verzeichnisses mithilfe der High-Level-Methode. NET TransferUtility Klasse
- Auflisten von mehrteiligen Uploads
- Verfolgen eines mehrteiligen Uploads mit dem AWS SDKs
- Abbrechen eines mehrteiligen Uploads
- Kopieren eines Objekts mit Multipart-Upload
- Tutorial: Laden Sie ein Objekt durch mehrteiligen Upload hoch und überprüfen Sie seine Datenintegrität
- EInschränkungen mehrteiliger Amazon-S3-Uploads