Storage S3 REST API

ListObjects

הפעולה הזו מחזירה חלק מהאובייקטים בדלי או את כולם, עד 1,000 אובייקטים.

דוגמה לבקשה:

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

דוגמה לתשובה (הצלחה):

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

הפעולה הזו מחזירה חלק מהאובייקטים בדלי או את כולם, עד 1,000 אובייקטים.

דוגמה לבקשה:

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

דוגמה לתשובה (הצלחה):

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)

הפעולה הזו מאחזרת אובייקט מקטגוריה עם מזהה גרסה אופציונלי שסופק.

דוגמה לבקשה:

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

דוגמה לתשובה (הצלחה):

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)

הפעולה הזו מחזירה תגובה חיובית ואת המזהה, שם התצוגה וההרשאה של בעלי האובייקט, שמציינים שלבעלים יש גישה מלאה לאובייקט. כדי לבצע את הפעולה הזו, צריך לספק פרטי גישה לחשבון.

דוגמה לבקשה:

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

דוגמה לתשובה (הצלחה):

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)

הפעולה הזו מאחזרת את מצב השמירה של האובייקט שצוין ואת התאריך שבו מסתיימת השמירה של האובייקט. למאגר חייבת להיות הגדרת נעילת אובייקטים.

דוגמה לבקשה:

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)

דוגמה לתשובה (הצלחה):

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)

הפעולה הזו מחזירה את סטטוס ההקפאה המשפטית העדכני של אובייקט. למאגר חייבת להיות הגדרת נעילת אובייקטים.

דוגמה לבקשה:

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)

דוגמה לתשובה (הצלחה):

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)

הפעולה הזו משתמשת במשאב המשנה tagging כדי להחזיר את כל התגים של אובייקט. אם לא מציינים את הפרמטר versionId, הפעולה מחזירה את כל התגים מהגרסה האחרונה של האובייקט בקטגוריה עם ניהול גרסאות. אם הגרסה הנוכחית של האובייקט היא סמן מחיקה, מוחזר סטטוס MethodNotAllowed עם כותרת התגובה x-amz-deletemarker שמוגדרת לערך true.

דוגמה לבקשה:

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)

דוגמה לתשובה (הצלחה):

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

הפעולה הזו מוסיפה אובייקט לקטגוריה. כדי להוסיף אובייקט לקטגוריה, צריך הרשאות כתיבה מתאימות בקטגוריה.

הצפנה גרסה 2

אם מדובר בקטגוריית EV2 (גרסה 2 של הצפנה), הבקשה תשתמש במפתח AEAD כברירת מחדל להצפנה אם לא צוינו מפתחות מותאמים אישית.

כדי להשתמש במפתח AEAD מותאם אישית להצפנה, צריך להגדיר שתי כותרות:

  • ‫x-amz-server-side-encryption: SSE-KMS – מציין שהבקשה הזו מנסה להשתמש במפתח AEAD בהתאמה אישית.
  • ‫x-amz-server-side-encryption-aws-kms-key-id: {custom_key_namespace}/{custom_key_name} – מציין את המפתח שמיועד לשימוש. מרחב השמות של המפתח צריך להיות באותו פרויקט כמו הקטגוריה.

דוגמה לבקשה:

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]

דוגמה לתשובה (הצלחה):

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

הפעולה הזו משתמשת במשאב המשנה tagging כדי להוסיף קבוצה של תגים לאובייקט קיים.

דוגמה לבקשה:

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>

דוגמה לתשובה (הצלחה):

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)

הפעולה הזו מאפשרת למחוק כמה אובייקטים מדלי אחד באמצעות בקשה אחת. הבקשה יכולה להכיל רשימה של עד 1,000 מפתחות שרוצים למחוק.

דוגמה לבקשה:

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>

דוגמה לתשובה (הצלחה):

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)

הסרת אובייקט מקטגוריה. ההתנהגות תלויה במצב ניהול הגרסאות של הקטגוריה: – אם ניהול הגרסאות של הקטגוריה לא מופעל, הפעולה מוחקת את האובייקט באופן סופי. – אם מופעל ניהול גרסאות של קטגוריות, הפעולה מוסיפה סמן מחיקה, שהופך לגרסה הנוכחית של האובייקט. כדי למחוק אובייקט לתמיד מקטגוריה עם ניהול גרסאות, צריך לכלול את versionId של האובייקט בבקשה.

דוגמה לבקשה:

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

דוגמה לתשובה (הצלחה):

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)

הפעולה הזו משתמשת במשאב המשנה tagging כדי להסיר את כל התגים מאובייקט.

דוגמה לבקשה:

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

דוגמה לתשובה (הצלחה):

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)

פעולת HEAD מאחזרת מטא-נתונים מאובייקט בלי להחזיר את האובייקט עצמו. הפעולה הזו שימושית אם אתם מתעניינים רק במטא-נתונים של אובייקט.

דוגמה לבקשה:

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

דוגמה לתשובה (הצלחה):

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

הפעולה הזו מפעילה העלאה מרובת חלקים ומחזירה מזהה העלאה.

העלאה מרובת חלקים מאפשרת להוסיף אובייקט יחיד כקבוצה של חלקים. כל חלק הוא קטע רציף של נתוני האובייקט. מעלים את החלקים האלה של האובייקט בנפרד ובכל סדר.

מזהה ההעלאה שמוחזר משמש לקישור כל החלקים בהעלאה הספציפית מרובת החלקים. מציינים את מזהה ההעלאה הזה בכל אחת מהבקשות הבאות להעלאת חלקים. משתמשים במזהה ההעלאה הזה גם בבקשה הסופית כדי להשלים או לבטל את בקשת ההעלאה מרובת החלקים.

הצפנה גרסה 2

מזהה ההעלאה שמוחזר עבור בקט EV2(גרסה 2 של הצפנה) יונפק רק פעם אחת. אם מזהה ההעלאה שמוחזר מהפעולה הזו אבד, אי אפשר לשחזר אותו מ-ListMultipartUploads. עם זאת, אפשר להשתמש במזהי ההעלאה שמוחזרים מ-ListMultipartUploads עבור AbortMultipartUpload או ListParts. אפשר להשתמש רק במזהה שמוחזר מהפעולה CreateMultipartUpload כדי להעלות חלקים או להשלים העלאה מרובת חלקים.

דוגמה לבקשה:

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

דוגמה לתשובה (הצלחה):

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)

הפעולה הזו מציגה רשימה של העלאות מרובות חלקים שנמצאות בתהליך בקטגוריה.

הצפנה גרסה 2

מזהי ההעלאה שמוחזרים מהפעולה הזו יעבדו רק עם ListParts ועם AbortMultipartUpload.

דוגמה לבקשה:

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

דוגמה לתשובה (הצלחה):

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 אופציונלי)

הפעולה הזו מציגה רשימה של החלקים שהועלו להעלאה מרובת חלקים ספציפית, ומחזירה כברירת מחדל עד 1,000 חלקים שהועלו. צריך לכלול את מזהה ההעלאה, שמתקבל באמצעות הבקשה CreateMultipartUpload.

הצפנה גרסה 2

אפשר להשתמש במזהה ההעלאה שמוחזר מ-CreateMultipartUpload או מ-ListMultipartUploads לבקשה הזו.

דוגמה לבקשה:

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

דוגמה לתשובה (הצלחה):

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

הפעולה הזו מעלה חלק בהעלאה מרובת חלקים של אובייקט.

הצפנה גרסה 2

בקטגוריה EV2 (גרסה 2 של הצפנה), חובה להשתמש במזהה שמוחזר מ-CreateMultipartUpload. המזהים שמוחזרים מ-ListMutlipartUploads לא יפעלו בבקשה הזו.

דוגמה לבקשה:

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]

דוגמה לתשובה (הצלחה):

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

הפעולה הזו מבטלת העלאה מרובת חלקים והופכת את מזהה ההעלאה ללא תקף להעלאה של חלקים נוספים. שטח האחסון שנוצל על ידי חלקים שהועלו בעבר משוחרר.

הצפנה גרסה 2

במקרה של באקט EV2 (הצפנה גרסה 2), אפשר להשתמש במזהה שמוחזר מ-CreateMultipartUpload או מ-ListMultipartUploads לפעולה הזו.

דוגמה לבקשה:

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

דוגמה לתשובה (הצלחה):

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

הפעולה הזו משלימה העלאה מרובת חלקים של אובייקט על ידי הרכבת החלקים שהועלו קודם.

הצפנה גרסה 2

בקטגוריה EV2 (גרסה 2 של הצפנה), חובה להשתמש במזהה שמוחזר מ-CreateMultipartUpload. המזהים שמוחזרים מ-ListMutlipartUploads לא יפעלו בבקשה הזו.

כדי להשתמש במפתח AEAD מותאם אישית להצפנה, צריך להגדיר שתי כותרות:

  • ‫x-amz-server-side-encryption: SSE-KMS – מציין שהבקשה הזו מנסה להשתמש במפתח AEAD בהתאמה אישית.
  • ‫x-amz-server-side-encryption-aws-kms-key-id: {custom_key_namespace}/{custom_key_name} – מציין את המפתח שמיועד לשימוש. מרחב השמות של המפתח צריך להיות באותו פרויקט כמו הקטגוריה.

דוגמה לבקשה:

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>

דוגמה לתשובה (הצלחה):

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

הפעולה הזו היא סוג מיוחד של PutObject, שבו הנתונים נמשכים מאובייקט מקור שכבר קיים באחסון האובייקטים.

קטגוריית המקור ומפתח האובייקט מצוינים כערך של הכותרת x-amz-copy-source, כשהם מופרדים באמצעות /. לדוגמה, כדי להעתיק את האובייקט images/my_image.jpg מהקטגוריה my_bucket, הערך שצריך להגדיר הוא my_bucket/images/my_image.jpg.

הצפנה גרסה 2

בקטגוריה מסוג EV2 (הצפנה גרסה 2), אובייקט המקור הזה חייב להיות מקטגוריה מסוג הצפנה גרסה 2, אחרת הפעולה תיכשל.

כדי להשתמש במפתח AEAD מותאם אישית להצפנה, צריך להגדיר שתי כותרות:

  • ‫x-amz-server-side-encryption: SSE-KMS – מציין שהבקשה הזו מנסה להשתמש במפתח AEAD בהתאמה אישית.
  • ‫x-amz-server-side-encryption-aws-kms-key-id: {custom_key_namespace}/{custom_key_name} – מציין את המפתח שמיועד לשימוש. מרחב השמות של המפתח צריך להיות באותו פרויקט כמו הקטגוריה.

דוגמה לבקשה:

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

דוגמה לתשובה (הצלחה):

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

הפעולה הזו תשתמש באובייקט שכבר קיים באחסון האובייקטים כנתונים לחלק יחיד בהעלאה מרובת חלקים.

קטגוריית המקור ומפתח האובייקט מצוינים כערך של הכותרת x-amz-copy-source, כשהם מופרדים באמצעות /. לדוגמה, כדי להעתיק את האובייקט images/my_image.jpg מהקטגוריה my_bucket, הערך שצריך להגדיר הוא my_bucket/images/my_image.jpg.

הצפנה גרסה 2

הפעולה הזו לא נתמכת בדלי EV2 (גרסה 2 של הצפנה).

דוגמה לבקשה:

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

דוגמה לתשובה (הצלחה):

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>