API für Multipart-Upload für Object Storage verwenden
Erfahren Sie, wie Sie Multipart-Uploads für einen Bucket mit der API ausführen.
Ein Multipart-Upload, der mit der API ausgeführt wird, besteht aus folgenden Schritten:
-
Objektteile erstellen
-
Upload wird gestartet
-
Objektteile hochladen
-
Upload festschreiben (oder abbrechen)
Bevor Sie die API für mehrteiligen Upload verwenden, müssen Sie die hochzuladenden Teile erstellen. Object Storage stellt API-Vorgänge für die restlichen Schritte bereit. Der Service bietet außerdem API-Vorgänge zum Auflisten von laufenden Multipart-Uploads, zum Auflisten der Objektteile in einem laufenden Multipart-Upload und zum Beenden von laufenden Multipart-Uploads, die über die API gestartet wurden. Nachfolgend finden Sie einen allgemeinen Überblick über die API-Schritte. Einzelheiten zu den unterstützten API-Aufrufen finden Sie in der API-Referenz.
Objektteile erstellen
Beim Multipart-Upload teilen Sie das Objekt, das Sie hochladen möchten, in einzelne Teile auf. Einzelne Teile können bis zu 50 GiB umfassen. Entscheiden Sie, welche Teilenummer für jeden Teil verwendet werden soll. Teilenummern können im Bereich zwischen 1 und 10.000 liegen. Sie müssen keine weiteren Nummern zuweisen. Object Storage erstellt das Objekt jedoch, indem Teilenummern in aufsteigender Reihenfolge angeordnet werden.
Upload wird gestartet
Starten Sie nach dem Erstellen der Objektteile einen mehrteiligen Upload mit dem REST-API-Aufruf CreateMultipartUpload. Geben Sie den Objektnamen und alle Objektmetadaten an. Object Storage antwortet mit einer eindeutigen Upload-ID, die Sie in alle Anforderungen zu diesem Multipart-Upload aufnehmen müssen. Object Storage kennzeichnet den Upload außerdem als aktiv. Der Upload bleibt aktiv, bis Sie ihn explizit festschreiben oder abbrechen.
Objektteile hochladen
Stellen Sie für jeden Objektteilupload eine UploadPart-Anforderung. Geben Sie in den Anforderungsparametern den Object Storage -Namespace, den Bucket-Namen, die Upload-ID und die Teilenummer an. Nehmen Sie den Objektteil in den Anforderungsbody auf. Objektteile können parallel und in beliebiger Reihenfolge hochgeladen werden. Wenn Sie den Upload festschreiben, verwendet Object Storage die Teilenummern, um Objektteile anzuordnen. Teilenummern müssen nicht zusammenhängend sein. Wenn mehrere Objektteile mit derselben Upload-ID und Teilenummer hochgeladen werden, wird der letzte hochgeladene Teil vom Vorgang CommitMultipartUpload festgeschrieben. Informationen zu Anforderungen bezüglich Signaturanforderungen finden Sie unter Besondere Anweisungen für Object Storage-PUT.
Object Storage gibt für jeden hochgeladenen Teil einen ETag-Wert (Entitytag) zurück. Sie benötigen sowohl die Teilenummer als auch den entsprechenden ETag-Wert für jeden Teil, wenn Sie den Upload festschreiben.
Wenn Netzwerkprobleme vorliegen, können Sie einen nicht erfolgreichen Upload für einen einzelnen Teil neu starten. Sie müssen nicht den gesamten Upload neu starten. Wenn Sie aus irgendeinem Grund nicht alle Uploads auf einmal durchführen können, können Sie mit dem mehrteiligen Upload weitere Teile in Ihrem eigenen Tempo hochladen. Solange ein Multipart-Upload noch aktiv ist, können Sie weitere Teile hinzufügen, solange die Gesamtzahl weniger als 10.000 beträgt.
Sie können einen aktiven Multipart-Upload prüfen, indem Sie alle hochgeladenen Teile auflisten. (Sie können keine Informationen für einen einzelnen Objektteil in einem aktiven Multipart-Upload auflisten.) Der ListMultipartUploadParts-Vorgang erfordert den Object Storage-Namespace, den Bucket-Namen und die Upload-ID. Object Storage antwortet mit Informationen zu den Teilen, die mit der angegebenen Upload-ID verknüpft sind. Zu den Teileinformationen gehören Teilenummer, ETag-Wert, MD5-Prüfsumme und Teilegröße (in Byte).
Wenn mehrere mehrteilige Uploads gleichzeitig ausgeführt werden, können Sie auch anzeigen, welche Uploads gerade ausgeführt werden. Mit einem ListMultipartUploads-API-Aufruf können Sie aktive Multipart-Uploads im angegebenen Object Storage-Namespace und -Bucket auflisten.
Wenn Sie Daten hochladen, fallen Gebühren für die Speicherung der Teile an.
Upload festschreiben
Nachdem Sie alle Objektteile hochgeladen haben, müssen Sie den Upload festschreiben. Mit den CommitMultipartUpload-Request-Parametern können Sie den Object Storage-Namespace, den Bucket-Namen und die Upload-ID angeben. Fügen Sie die Teilenummer und den entsprechenden ETag-Wert für jeden Teil in den Body der Anforderung ein. Wenn Sie den Upload festschreiben, erstellt Object Storage das Objekt aus seinen Bestandteilen. Das Objekt wird im angegebenen Bucket und Object Storage-Namespace gespeichert. Sie können es wie jedes andere Objekt behandeln. Durch die Garbage Collection wird Speicherplatz freigegeben, der von Teilenummern belegt wird, die Sie hochgeladen, aber nicht in die Anforderung CommitMultipartUpload aufgenommen haben.
Aus einem abgeschlossenen Upload können keine Teile aufgelistet oder abgerufen werden. Außerdem können Sie keine Teile an den abgeschlossenen Upload anhängen oder aus ihm entfernen. Wenn Sie möchten, können Sie das Objekt ersetzen, indem Sie einen neuen Upload starten.
Upload abbrechen
Wenn Sie einen mehrteiligen Upload abbrechen möchten, anstatt ihn festzuschreiben, warten Sie, bis die Uploads für laufende Teile abgeschlossen sind, und verwenden Sie dann den Vorgang AbortMultipartUpload. Wenn Sie den Upload trotzdem abbrechen, während noch Teile hochgeladen werden, löscht Object Storage sowohl abgeschlossene als auch in Bearbeitung befindliche Teile. Upload-IDs aus abgebrochenen Multipart-Uploads können nicht wiederverwendet werden.