Storage S3 REST API

ListObjects

Dieser Vorgang gibt einige oder alle Objekte in einem Bucket zurück, bis zu 1.000.

Beispielanfrage :

GET /{fully_qualified_bucket_name} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string

Beispielantwort (Erfolg) :

HTTP/1.1 200 OK
    x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
    x-amz-request-id: B34E94CACB2CEF6D
    Date: Mon, 17 Oct 2022 22:47:09 GMT
    <ListBucketResult>
        <Name>{fully_qualified_bucket_name}</Name>
        <Prefix></Prefix>
        <Marker></Marker>
        <Contents>
                <Key>example-object.jpg</Key>
                <LastModified>2022-10-17T01:56:20.000Z</LastModified>
                <ETag>"bf1d937a4d46a19f3basdfeg5cc8b902"</ETag>
                <Size>32347</Size>
                <Owner>
                <ID>canonical-user-id</ID>
                <DisplayName>example-display-name</DisplayName>
                </Owner>
                <StorageClass>STANDARD</StorageClass>
        </Contents>
  </ListBucketResult>

ListObjectsV2

Dieser Vorgang gibt einige oder alle Objekte in einem Bucket zurück, bis zu 1.000.

Beispielanfrage :

GET /{fully_qualified_bucket_name}?list-type=2 HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string

Beispielantwort (Erfolg) :

HTTP/1.1 200 OK
    x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
    x-amz-request-id: B34E94CACB2CEF6D
    Date: Mon, 17 Oct 2022 22:47:09 GMT
    <ListBucketResult>
        <Name>{fully_qualified_bucket_name}</Name>
        <Prefix></Prefix>
        <Marker></Marker>
        <Contents>
                <Key>example-object.jpg</Key>
                <LastModified>2022-10-17T01:56:20.000Z</LastModified>
                <ETag>"bf1d937a4d46a19f3basdfeg5cc8b902"</ETag>
                <Size>32347</Size>
                <Owner>
                <ID>canonical-user-id</ID>
                <DisplayName>example-display-name</DisplayName>
                </Owner>
                <StorageClass>STANDARD</StorageClass>
        </Contents>
  </ListBucketResult>

GetObject (versionId optional)

Dieser Vorgang ruft ein Objekt aus einem Bucket ab, wobei optional eine Versions-ID angegeben werden kann.

Beispielanfrage :

GET /{fully_qualified_bucket_name}/{object_name}?versionId={object_version_id} HTTP/1.1
Host: host
Content-MD5: request header
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string

Beispielantwort (Erfolg) :

HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6D
Date: Mon, 17 Oct 2022 22:47:09 GMT
ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"
Content-Length: 13432
[13432 bytes of object data]

GetObjectAcl (versionId optional)

Dieser Vorgang gibt eine positive Antwort sowie die ID, den Anzeigenamen und die Berechtigung des Objekteigentümers zurück, was darauf hinweist, dass der Eigentümer vollen Zugriff auf das Objekt hat. Für diesen Vorgang müssen die Zugangsdaten für das Konto angegeben werden.

Beispielanfrage :

GET /{fully_qualified_bucket_name}/{object_name}?acl&versionId={VersionId} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string

Beispielantwort (Erfolg) :

HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6D
Date: Mon, 17 Oct 2022 22:47:09 GMT
Content-Length: 157
<AccessControlPolicy>
    <Owner>
        <ID>canonical-user-id</ID>
        <DisplayName>example-display-name</DisplayName>
    </Owner>
    <AccessControlList>
        <Grant>
            <Grantee>
        <ID>canonical-user-id</ID>
                <DisplayName>example-display-name</DisplayName>
                <Type>CanonicalUser</Type>
            </Grantee>
            <Permission>FULL_CONTROL</Permission>
        </Grant>
</AccessControlList>
</AccessControlPolicy>

GetObjectRetention (versionId optional)

Dieser Vorgang ruft den Aufbewahrungsmodus für das angegebene Objekt und das Datum ab, an dem die Aufbewahrungssperre für das Objekt abläuft. Der Bucket muss eine Konfiguration für die Objektsperre haben.

Beispielanfrage :

GET /{fully_qualified_bucket_name}/{object_name}?retention&versionId={VersionId} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
X-amz-expected-bucket-owner: ExpectedBucketOwner (optional)

Beispielantwort (Erfolg) :

HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6D
Date: Mon, 17 Oct 2022 22:47:09 GMT
<Retention>
    <Mode>COMPLIANCE</Mode>
    <Timestamp>2022-10-17T01:56:20.000Z</Timestamp>
</Retention>

GetObjectLegalHold (versionId optional)

Dieser Vorgang ruft den aktuellen Status der Rechtssperre eines Objekts ab. Der Bucket muss eine Konfiguration für die Objektsperre haben.

Beispielanfrage :

GET /{fully_qualified_bucket_name}/{object_name}?legal-hold&versionId={VersionId} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
X-amz-expected-bucket-owner: ExpectedBucketOwner (optional)

Beispielantwort (Erfolg) :

HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6D
Date: Mon, 17 Oct 2022 22:47:09 GMT
<LegalHold>
    <Status>ON</Status>
</LegalHold>

GetObjectTagging (versionId optional)

Dieser Vorgang verwendet die Unterressource „Tagging“, um alle Tags für ein Objekt zurückzugeben. Wenn der Parameter versionId nicht angegeben ist, gibt der Vorgang alle Tags aus der neuesten Version des Objekts in einem Bucket mit Versionsverwaltung zurück. Wenn die aktuelle Version des Objekts ein Löschmarker ist, wird der Status MethodNotAllowed zurückgegeben und der Antwortheader x-amz-deletemarker ist auf true gesetzt.

Beispielanfrage :

GET /{fully_qualified_bucket_name}/{object_name}?tagging&versionId={VersionId} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
X-amz-expected-bucket-owner: ExpectedBucketOwner (optional)

Beispielantwort (Erfolg) :

HTTP/1.1 200 OK
Date: Mon, 17 Oct 2022 22:47:09 GMT
<Tagging>
  <TagSet>
        <Tag>
        <Key>tag1</Key>
        <Value>val1</Value>
      </Tag>
      <Tag>
        <Key>tag2</Key>
        <Value>val2</Value>
      </Tag>
  </TagSet>
</Tagging>

PutObject

Dieser Vorgang fügt einem Bucket ein Objekt hinzu. Sie benötigen die entsprechenden Schreibberechtigungen für einen Bucket, um ihm ein Objekt hinzuzufügen.

Verschlüsselungsversion 2

Bei einem Bucket mit Verschlüsselungsversion 2 wird in der Anfrage ein standardmäßiger AEAD-Schlüssel für die Verschlüsselung verwendet, wenn keine benutzerdefinierten Schlüssel angegeben sind.

Wenn Sie einen benutzerdefinierten AEAD-Schlüssel für die Verschlüsselung verwenden möchten, müssen zwei Header festgelegt werden:

  • x-amz-server-side-encryption: SSE-KMS - Gibt an, dass diese Anfrage versucht, einen benutzerdefinierten AEAD-Schlüssel zu verwenden.
  • x-amz-server-side-encryption-aws-kms-key-id: {custom_key_namespace}/{custom_key_name} - Gibt den Schlüssel an, der verwendet werden soll. Der Schlüssel-Namespace muss sich im selben Projekt wie der Bucket befinden.

Beispielanfrage :

PUT /{fully_qualified_bucket_name}/{object_name} HTTP/1.1
Host: host
Content-MD5: request header
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Content-Length: 5233
Content-type: text/plain
[5233 bytes of object data]

Beispielantwort (Erfolg) :

HTTP/1.1 100 Continue

HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6C
Date: Mon, 17 Oct 2022 22:47:09 GMT
ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"

PutObjectTagging

Dieser Vorgang verwendet die Unterressource „Tagging“, um einem vorhandenen Objekt eine Reihe von Tags hinzuzufügen.

Beispielanfrage :

PUT /{fully_qualified_bucket_name}/{object_name}?tagging HTTP/1.1
Host: host
Content-MD5: +b9TrAB9F8ne7rJpPkqavQ==
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Content-Length: {length}
Content-type: text/plain
<Tagging>
    <TagSet>
        <Tag>
            <key>my-tag-key</key>
            <value>my-tag-value</value>
        </Tag>
    </TagSet>
</Tagging>

Beispielantwort (Erfolg) :

HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6C
Date: Mon, 17 Oct 2022 22:47:09 GMT

DeleteObject (versionId optional)

Mit diesem Vorgang können Sie mehrere Objekte aus einem einzelnen Bucket mit einer Anfrage löschen. Die Anfrage kann eine Liste mit bis zu 1.000 Schlüsseln enthalten, die Sie löschen möchten.

Beispielanfrage :

DELETE /{fully_qualified_bucket_name}/{object_name}?versionId={VersionId} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Content-type: text/plain
<Delete xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
   <Object>
      <Key>object_one.jpg</Key>
      <VersionId>1234568892</VersionId>
   </Object>
   <Object>
      <Key>object_two.jpg</Key>
   </Object>
</Delete>

Beispielantwort (Erfolg) :

HTTP/1.1 200 OK
x-amz-id-2: 5h4FxSNCUS7wP5z92eGCWDshNpMnRuXvETa4HH3LvvH6VAIr0jU7tH9kM7X+njXx
x-amz-request-id: A437B3B641629AEE
Date: Fri, 02 Oct 2023 01:53:42 GMT
Content-Type: application/xml
Content-Length: 251
<?xml version="1.0" encoding="UTF-8"?>
<DeleteResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <Deleted>
        <Key>object_one.jpg</Key>
    </Deleted>
    <Error>
        <Key>object_two.jpg</Key>
        <Code>AccessDenied</Code>
        <Message>Access Denied</Message>
    </Error>
</DeleteResult>

DeleteObjects (versionId optional)

Entfernt ein Objekt aus einem Bucket. Das Verhalten hängt vom Versionsverwaltungsstatus des Buckets ab: - Wenn die Versionsverwaltung für den Bucket nicht aktiviert ist, wird das Objekt dauerhaft gelöscht. - Wenn die Versionsverwaltung für den Bucket aktiviert ist, wird ein Löschmarker eingefügt, der zur aktuellen Version des Objekts wird. Wenn Sie ein Objekt in einem Bucket mit Versionsverwaltung dauerhaft löschen möchten, müssen Sie die versionId des Objekts in die Anfrage einfügen.

Beispielanfrage :

DELETE /{fully_qualified_bucket_name}/{object_name}?versionId={VersionId} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Content-type: text/plain

Beispielantwort (Erfolg) :

HTTP/1.1 204 NoContent
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6C
Date: Mon, 17 Oct 2022 22:47:09 GMT

DeleteObjectTagging (versionId optional)

Dieser Vorgang verwendet die Unterressource „Tagging“, um alle Tags aus einem Objekt zu entfernen.

Beispielanfrage :

DELETE /{fully_qualified_bucket_name}/{object_name}?tagging&versionId={VersionId} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Content-type: text/plain

Beispielantwort (Erfolg) :

HTTP/1.1 204 NoContent
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6C
Date: Mon, 17 Oct 2022 22:47:09 GMT

HeadObject (versionId optional)

Der Vorgang HEAD ruft Metadaten aus einem Objekt ab, ohne das Objekt selbst zurückzugeben. Dieser Vorgang ist nützlich, wenn Sie nur an den Metadaten eines Objekts interessiert sind.

Beispielanfrage :

HEAD /{fully_qualified_bucket_name}/{object_name}?versionId={VersionId} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Content-type: text/plain

Beispielantwort (Erfolg) :

HTTP/1.1 200
x-amz-id-2: ef8yU9AS1ed4OpIszj7UDNEHGran
x-amz-request-id: 318BC8BC143432E5
x-amz-version-id: 3HL4kqtJlcpXroDTDmjVBH40Nrjfkd
Date: Wed, 28 Oct 2023 22:32:00 GMT
Last-Modified: Sun, 1 Jan 2006 12:00:00 GMT
ETag: "fba9dede5f27731c9771645a39863328"
Content-Length: 434234
Content-Type: text/plain
Connection: close

CreateMultipartUpload

Mit dieser Aktion wird ein mehrteiliger Upload gestartet und eine Upload-ID zurückgegeben.

Bei einem mehrteiligen Upload können Sie ein einzelnes Objekt als eine Reihe von Teilen hinzufügen. Jeder Teil ist ein zusammenhängender Teil der Daten des Objekts. Laden Sie diese Objektteile unabhängig voneinander und in beliebiger Reihenfolge hoch.

Die zurückgegebene Upload-ID wird verwendet, um alle Teile im jeweiligen mehrteiligen Upload zuzuordnen. Sie geben diese Upload-ID in jeder Ihrer nachfolgenden Anfragen zum Hochladen von Teilen an. Sie verwenden diese Upload-ID auch in der endgültigen Anfrage, um die Anfrage zum mehrteiligen Upload entweder abzuschließen oder abzubrechen.

Verschlüsselungsversion 2

Die zurückgegebene Upload-ID für einen Bucket mit Verschlüsselungsversion 2 wird nur einmal erstellt. Wenn die von diesem Vorgang zurückgegebene Upload-ID verloren geht, kann sie nicht über ListMultipartUploads wiederhergestellt werden. Die von ListMultipartUploads zurückgegebenen Upload-IDs können jedoch für AbortMultipartUpload oder ListParts verwendet werden. Nur die von CreateMultipartUpload zurückgegebene ID kann für UploadPart oder CompleteMultipartUpload verwendet werden.

Beispielanfrage :

POST /{fully_qualified_bucket_name}/{object_name}?uploads HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Content-type: text/plain

Beispielantwort (Erfolg) :

HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6D
Date: Mon, 17 Oct 2022 22:47:09 GMT
    <InitiateMultipartUploadResult>
        <Bucket>{fully_qualified_bucket_name}</Bucket>
        <Key>{object_name}</Key>
        <UploadId>VXBsb2FkIElEIGZvciA2aWWpbmcncyBteS1tb3ZpZS5tMnRzIHVwbG9hZA</UploadId>
  </InitiateMultipartUploadResult>

ListMultipartUploads (max-uploads optional)

Dieser Vorgang listet die laufenden mehrteiligen Uploads für einen Bucket auf.

Verschlüsselungsversion 2

Die von diesem Vorgang zurückgegebenen Upload-IDs funktionieren nur mit ListParts und AbortMultipartUpload.

Beispielanfrage :

GET /{fully_qualified_bucket_name}?uploads&max-uploads={max-uploads} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Content-type: text/plain

Beispielantwort (Erfolg) :

HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6D
Date: Mon, 17 Oct 2022 22:47:09 GMT
<ListMultipartUploadsResult>
<Bucket>{fully_qualified_bucket_name}</Bucket>
<KeyMarker></KeyMarker>
<UploadIdMarker></UploadIdMarker>
<NextKeyMarker>my-movie.m2ts</NextKeyMarker>
    <NextUploadIdMarker>YW55IGlkZWEgd2h5IGVsdmluZydzIHVwbG9hZCBmYWlsZWQ</NextUploadIdMarker>
    <MaxUploads>3</MaxUploads>
    <IsTruncated>true</IsTruncated>
    <Upload>
            <Key>{object_name}</Key>
            <UploadId>VXBsb2FkIElEIGZvciA2aWWpbmcncyBteS1tb3ZpZS5tMnRzIHVwbG9hZA</UploadId>
            <Initiator>
            <ID>{canonical-user-id}</ID>
            <DisplayName>InitiatorDisplayName</DisplayName>
            </Initiator>
            <Owner>
            <ID>{canonical-owner-user-id}</ID>
            <DisplayName>OwnerDisplayName</DisplayName>
            </Owner>
            <StorageClass>STANDARD</StorageClass>
            <Initiated>2022-10-17T01:56:20.000Z</Initiated>
    </Upload>
</ListMultipartUploadsResult>

ListParts (max-parts optional)

Dieser Vorgang listet die Teile auf, die für einen bestimmten mehrteiligen Upload hochgeladen wurden, und gibt standardmäßig maximal 1.000 hochgeladene Teile zurück. Sie müssen die Upload-ID angeben, die Sie mit der Anfrage CreateMultipartUpload erhalten haben.

Verschlüsselungsversion 2

Die von CreateMultipartUpload oder ListMultipartUploads zurückgegebene Upload-ID kann für diese Anfrage verwendet werden.

Beispielanfrage :

GET /{fully_qualified_bucket_name}/{object_name}?uploadId={uploadId}&max-parts={max-parts} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Content-type: text/plain

Beispielantwort (Erfolg) :

HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6D
Date: Mon, 17 Oct 2022 22:47:09 GMT
<ListPartsResult>
        <Bucket>{fully_qualified_bucket_name}</Bucket>
        <Key>{object_name}</Key>
        <UploadId>{uploadId}</UploadId>
        <Initiator>
            <ID>{canonical-user-id}</ID>
            <DisplayName>InitiatorDisplayName</DisplayName>
          </Initiator>
        <Owner>
                <ID>{canonical-owner-id}</ID>
                <DisplayName>OwnerDisplayName</DisplayName>
        </Owner>
        <StorageClass>STANDARD</StorageClass>
        <PartNumberMarker></PartNumberMarker>
        <NextPartNumberMarker></NextPartNumberMarker>
        <MaxParts>{max-parts}</MaxParts>
        <IsTruncated>true</IsTruncated>
        <Part>
                <PartNumber>2</PartNumber>
                <LastModified>2022-10-17T01:56:20.000Z</LastModified>
                <ETag>"7778aef8t866abc1fa1e8466f296d394"</ETag>
                <Size>10485769</Size>
        </Part>
        <Part>
                <PartNumber>3</PartNumber>
                <LastModified>2022-10-17T01:56:20.000Z</LastModified>
                <ETag>"aaab18db4cc2f85cedef854fccci24x8"</ETag>
                <Size>10423760</Size>
        </Part>
</ListPartsResult>

UploadPart

Dieser Vorgang lädt einen Teil in einem mehrteiligen Upload für ein Objekt hoch.

Verschlüsselungsversion 2

Bei einem Bucket mit Verschlüsselungsversion 2 müssen Sie die von CreateMultipartUpload zurückgegebene ID verwenden. Die von ListMutlipartUploads zurückgegebenen IDs funktionieren nicht für diese Anfrage.

Beispielanfrage :

PUT /{fully_qualified_bucket_name}/{object_name}?uploadId={uploadId}&partNumber={partNumber} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Content-Length: 345442
Content-MD5: +b9TrAB9F8ne7rJpPkqavQ==
[part data omitted, 345442 bytes of part data]

Beispielantwort (Erfolg) :

HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6D
Date: Mon, 17 Oct 2022 22:47:09 GMT
ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"

AbortMultipartUpload

Mit dieser Aktion wird ein mehrteiliger Upload abgebrochen und die Upload-ID wird ungültig, sodass keine weiteren Teile hochgeladen werden können. Der von zuvor hochgeladenen Teilen belegte Speicher wird freigegeben.

Verschlüsselungsversion 2

Bei einem Bucket mit Verschlüsselungsversion 2 können Sie für diesen Vorgang entweder die von CreateMultipartUpload oder ListMultipartUploads zurückgegebene ID verwenden.

Beispielanfrage :

DELETE /{fully_qualified_bucket_name}/{object_name}?uploadId={uploadId} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Content-type: text/plain

Beispielantwort (Erfolg) :

HTTP/1.1 204 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6C
Date: Mon, 17 Oct 2022 22:47:09 GMT

CompleteMultipartUpload

Dieser Vorgang schließt einen mehrteiligen Upload eines Objekts ab, indem die zuvor hochgeladenen Teile zusammengesetzt werden.

Verschlüsselungsversion 2

Bei einem Bucket mit Verschlüsselungsversion 2 müssen Sie die von CreateMultipartUpload zurückgegebene ID verwenden. Die von ListMutlipartUploads zurückgegebenen IDs funktionieren NICHT für diese Anfrage.

Wenn Sie einen benutzerdefinierten AEAD-Schlüssel für die Verschlüsselung verwenden möchten, müssen zwei Header festgelegt werden:

  • x-amz-server-side-encryption: SSE-KMS - Gibt an, dass diese Anfrage versucht, einen benutzerdefinierten AEAD-Schlüssel zu verwenden.
  • x-amz-server-side-encryption-aws-kms-key-id: {custom_key_namespace}/{custom_key_name} - Gibt den Schlüssel an, der verwendet werden soll. Der Schlüssel-Namespace muss sich im selben Projekt wie der Bucket befinden.

Beispielanfrage :

POST /{fully_qualified_bucket_name}/{object_name}?uploadId={uploadId} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Content-Length: 391
Content-type: text/plain
<CompleteMultipartUpload>
<Part>
    <PartNumber>1</PartNumber>
    <ETag>"a54357aff0632cce46d942af68356b38"</ETag>
</Part>
<Part>
    <PartNumber>2</PartNumber>
    <ETag>"0c78aef83f66abc1fa1e8477f296d394"</ETag>
</Part>
<Part>
      <PartNumber>3</PartNumber>
      <ETag>"acbd18db4cc2f85cedef654fccc4a4d8"</ETag>
</Part>
</CompleteMultipartUpload>

Beispielantwort (Erfolg) :

HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6D
Date: Mon, 17 Oct 2022 22:47:09 GMT
<CompleteMultipartUploadResult>
<Location>http://{host}/{fully_qualified_bucket_name}/{object_name}</Location>
        <Bucket>{fully_qualified_bucket_name}</Bucket>
        <Key>{object_name}</Key>
        <ETag>"acbd18db4cc2f85cedef654fccc4a4d8"</ETag>
</CompleteMultipartUploadResult>

CopyObject

Dieser Vorgang ist ein spezieller Typ von PutObject, bei dem die Daten aus einem Quellobjekt abgerufen werden, das bereits im Objektspeicher vorhanden ist.

Der Quell-Bucket und der Objektschlüssel werden als Wert für den x-amz-copy-source Header angegeben und durch ein / getrennt. Wenn Sie beispielsweise das Objekt images/my_image.jpg aus dem Bucket my_bucket kopieren möchten, muss der Wert my_bucket/images/my_image.jpg festgelegt werden.

Verschlüsselungsversion 2

Bei einem Bucket mit Verschlüsselungsversion 2 muss dieses Quellobjekt aus einem Bucket mit Verschlüsselungsversion 2 stammen, andernfalls schlägt der Vorgang fehl.

Wenn Sie einen benutzerdefinierten AEAD-Schlüssel für die Verschlüsselung verwenden möchten, müssen zwei Header festgelegt werden:

  • x-amz-server-side-encryption: SSE-KMS - Gibt an, dass diese Anfrage versucht, einen benutzerdefinierten AEAD-Schlüssel zu verwenden.
  • x-amz-server-side-encryption-aws-kms-key-id: {custom_key_namespace}/{custom_key_name} - Gibt den Schlüssel an, der verwendet werden soll. Der Schlüssel-Namespace muss sich im selben Projekt wie der Bucket befinden.

Beispielanfrage :

PUT /{fully_qualified_bucket_name}/{object_name} HTTP/1.1
Host: host
X-Amz-Copy-Source: my_bucket/images/my_image.jpg
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string

Beispielantwort (Erfolg) :

HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6C
x-amz-copy-source-version-id: 3/L4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo
Date: Mon, 17 Oct 2022 22:47:09 GMT

<CopyObjectResult>
    <LastModified>2009-10-12T17:50:30.000Z</LastModified>
    <ETag>"9b2cf535f27731c974343645a3985328"</ETag>
</CopyObjectResult>

UploadPartCopy

Bei diesem Vorgang wird ein Objekt, das bereits im Objektspeicher vorhanden ist, als Daten für einen einzelnen Teil in einem mehrteiligen Upload verwendet.

Der Quell-Bucket und der Objektschlüssel werden als Wert für den x-amz-copy-source Header angegeben und durch ein / getrennt. Wenn Sie beispielsweise das Objekt images/my_image.jpg aus dem Bucket my_bucket kopieren möchten, muss der Wert my_bucket/images/my_image.jpg festgelegt werden.

Verschlüsselungsversion 2

Dieser Vorgang wird für Buckets mit Verschlüsselungsversion 2 nicht unterstützt.

Beispielanfrage :

PUT /{fully_qualified_bucket_name}/{object_name}?uploadId={uploadId}&partNumber={partNumber} HTTP/1.1
Host: host
X-Amz-Copy-Source: my_bucket/images/my_image.jpg
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string

Beispielantwort (Erfolg) :

HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6C
x-amz-copy-source-version-id: 3/L4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo
Date: Mon, 17 Oct 2022 22:47:09 GMT

<CopyPartResult>
   <ETag>string</ETag>
   <LastModified>timestamp</LastModified>
   <ChecksumCRC32>string</ChecksumCRC32>
   <ChecksumCRC32C>string</ChecksumCRC32C>
   <ChecksumSHA1>string</ChecksumSHA1>
   <ChecksumSHA256>string</ChecksumSHA256>
</CopyPartResult>