Storage S3 REST API

ListObjects

Bei diesem Vorgang werden einige oder alle Objekte in einem Bucket zurückgegeben, 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

Beispiel für Antwort (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

Bei diesem Vorgang werden einige oder alle Objekte in einem Bucket zurückgegeben, 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

Beispiel für Antwort (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)

Mit diesem Vorgang wird ein Objekt aus einem Bucket abgerufen. Optional kann eine Versions-ID angegeben werden.

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

Beispiel für Antwort (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 uneingeschränkten Zugriff auf das Objekt hat. Für diesen Vorgang müssen Anmeldedaten 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

Beispiel für Antwort (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)

Mit diesem Vorgang wird der Aufbewahrungsmodus für das angegebene Objekt und das Datum abgerufen, an dem die Object Lock-Aufbewahrung abläuft. Für den Bucket muss eine Konfiguration für die Objektverriegelung vorhanden sein.

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)

Beispiel für Antwort (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)

Mit diesem Vorgang wird der aktuelle Status des rechtlichen Holds für ein Objekt abgerufen. Für den Bucket muss eine Konfiguration für die Objektverriegelung vorhanden sein.

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)

Beispiel für Antwort (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)

Bei diesem Vorgang wird die Unterressource „Tagging“ verwendet, um alle Tags für ein Objekt zurückzugeben. Wenn der Parameter versionId nicht angegeben ist, werden bei dem Vorgang alle Tags aus der neuesten Version des Objekts in einem Bucket mit Versionsverwaltung zurückgegeben. Wenn die aktuelle Version des Objekts eine Löschmarkierung ist, wird der Status MethodNotAllowed zurückgegeben und der Antwortheader x-amz-deletemarker wird 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)

Beispiel für Antwort (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

Bei diesem Vorgang wird einem Bucket ein Objekt hinzugefügt. Sie benötigen die entsprechenden SCHREIBberechtigungen für einen Bucket, um ein Objekt hinzuzufügen.

Verschlüsselungsversion 2

Bei einem EV2-Bucket (Encryption Version 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 für diese Anfrage versucht wird, 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]

Beispiel für Antwort (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

Bei diesem Vorgang wird die Unterressource „Tagging“ verwendet, 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>

Beispiel für Antwort (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>

Beispiel für Antwort (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 Bucket-Versionsverwaltung nicht aktiviert ist, wird das Objekt durch den Vorgang dauerhaft gelöscht. – Wenn die Bucket-Versionsverwaltung aktiviert ist, wird durch den Vorgang eine Löschmarkierung eingefügt, die zur aktuellen Version des Objekts wird. Wenn Sie ein Objekt in einem Bucket mit aktivierter Versionsverwaltung endgültig 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

Beispiel für Antwort (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)

Bei diesem Vorgang wird die Unterressource „Tagging“ verwendet, 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

Beispiel für Antwort (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)

Mit dem HEAD-Vorgang werden Metadaten aus einem Objekt abgerufen, 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

Beispiel für Antwort (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

Durch diese Aktion wird ein mehrteiliger Upload gestartet und eine Upload-ID zurückgegeben.

Bei einem mehrteiligen Upload können Sie ein einzelnes Objekt als Gruppe von Teilen hinzufügen. Jeder Teil ist ein zusammenhängender Abschnitt 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 des jeweiligen mehrteiligen Uploads zuzuordnen. Sie geben diese Upload-ID in jeder Ihrer nachfolgenden Upload-Teilanfragen an. Sie verwenden diese Upload-ID auch in der endgültigen Anfrage, um die mehrteilige Uploadanfrage abzuschließen oder abzubrechen.

Verschlüsselungsversion 2

Die zurückgegebene Upload-ID für einen EV2-Bucket(Encryption Version 2) wird nur einmal generiert. 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 ID, die von CreateMultipartUpload zurückgegeben wird, 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

Beispiel für Antwort (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)

Mit diesem Vorgang werden laufende mehrteilige Uploads für einen Bucket aufgelistet.

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

Beispiel für Antwort (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)

Mit diesem Vorgang werden die Teile aufgelistet,die für einen bestimmten mehrteiligen Upload hochgeladen wurden. Standardmäßig werden maximal 1.000 hochgeladene Teile zurückgegeben. Sie müssen die Upload-ID angeben, die Sie mit der Anfrage CreateMultipartUpload erhalten haben.

Verschlüsselungsversion 2

Die zurückgegebene Upload-ID aus CreateMultipartUpload oder ListMultipartUploads 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

Beispiel für Antwort (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

Mit diesem Vorgang wird ein Teil eines Objekts in einem mehrteiligen Upload hochgeladen.

Verschlüsselungsversion 2

Für einen EV2-Bucket (Encryption Version 2) müssen Sie die ID verwenden, die von CreateMultipartUpload zurückgegeben wird. 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]

Beispiel für Antwort (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

Diese Aktion bricht einen mehrteiligen Upload ab und macht die Upload-ID für das Hochladen weiterer Teile ungültig. Der Speicherplatz, der von zuvor hochgeladenen Teilen belegt wurde, wird freigegeben.

Verschlüsselungsversion 2

Bei einem EV2-Bucket (Encryption Version 2) können Sie für diesen Vorgang entweder die ID verwenden, die von CreateMultipartUpload zurückgegeben wird, oder ListMultipartUploads.

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

Beispiel für Antwort (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

Mit diesem Vorgang wird ein mehrteiliger Upload eines Objekts abgeschlossen, indem die zuvor hochgeladenen Teile zusammengesetzt werden.

Verschlüsselungsversion 2

Für einen EV2-Bucket (Encryption Version 2) müssen Sie die ID verwenden, die von CreateMultipartUpload zurückgegeben wird. 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 für diese Anfrage versucht wird, 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>

Beispiel für Antwort (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 auf my_bucket/images/my_image.jpg festgelegt werden.

Verschlüsselungsversion 2

Bei einem EV2-Bucket (Encryption Version 2) muss dieses Quellobjekt aus einem Encryption V2-Bucket 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 für diese Anfrage versucht wird, 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

Beispiel für Antwort (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 bereits im Objektspeicher vorhandenes Objekt als Daten für einen einzelnen Teil eines Multipart-Uploads 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 auf my_bucket/images/my_image.jpg festgelegt werden.

Verschlüsselungsversion 2

Dieser Vorgang wird für EV2-Buckets (Encryption Version 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

Beispiel für Antwort (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>