Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
CopyObject (API SABUN)
catatan
SOAP API untuk Amazon S3 tidak tersedia untuk pelanggan baru, dan mendekati End of Life (EOL) pada 31 Agustus 2025. Kami menyarankan Anda menggunakan REST API atau AWS SDK.
Deskripsi
CopyObjectOperasi membuat salinan objek ketika Anda menentukan kunci dan bucket dari objek sumber dan kunci dan bucket tujuan target.
Saat menyalin objek, Anda dapat mempertahankan semua metadata (default) atau menentukan metadata baru. Namun, ACL tidak dipertahankan dan diatur private untuk pengguna yang membuat permintaan. Untuk mengganti setelan ACL default, tentukan ACL baru saat membuat permintaan salinan. Untuk informasi lebih lanjut, lihat Menggunakan ACL.
Semua permintaan salinan harus diautentikasi. Selain itu, Anda harus memiliki akses baca ke objek sumber dan akses menulis ke bucket tujuan. Untuk informasi selengkapnya, lihat Menggunakan Akses Auth.
Untuk hanya menyalin objek dalam kondisi tertentu, seperti apakah Etag cocok atau apakah objek dimodifikasi sebelum atau setelah tanggal tertentu, gunakan parameter permintaanCopySourceIfUnmodifiedSince,, CopyIfUnmodifiedSinceCopySourceIfMatch, atauCopySourceIfNoneMatch.
catatan
Anda mungkin perlu mengonfigurasi batas waktu soket tumpukan SOAP untuk menyalin objek besar.
Sintaksis Permintaan
<CopyObject xmlns="http://bucket_name.s3.amazonaws.com/2006-03-01"> <SourceBucket>source_bucket</SourceBucket> <SourceObject>source_object</SourceObject> <DestinationBucket>destination_bucket</DestinationBucket> <DestinationObject>destination_object</DestinationObject> <MetadataDirective>{REPLACE | COPY}</MetadataDirective> <Metadata> <Name>metadata_name</Name> <Value>metadata_value</Value> </Metadata> ... <AccessControlList> <Grant> <Grantee xsi:type="user_type"> <ID>user_id</ID> <DisplayName>display_name</DisplayName> </Grantee> <Permission>permission</Permission> </Grant> ... </AccessControlList> <CopySourceIfMatch>etag</CopySourceIfMatch> <CopySourceIfNoneMatch>etag</CopySourceIfNoneMatch> <CopySourceIfModifiedSince>date_time</CopySourceIfModifiedSince> <CopySourceIfUnmodifiedSince>date_time</CopySourceIfUnmodifiedSince> <AWSAccessKeyId>AWSAccessKeyId</AWSAccessKeyId> <Timestamp>TimeStamp</Timestamp> <Signature>Signature</Signature> </CopyObject>
Parameter Permintaan
| Nama | Deskripsi | Diperlukan |
|---|---|---|
SourceBucket
|
Nama bucket sumber. Tipe: String Default: Tidak Ada Kendala: Bucket sumber yang valid. |
Ya |
SourceKey
|
Nama kunci dari objek sumber. Tipe: String Default: Tidak Ada Batasan: Kunci untuk objek sumber yang valid yang memiliki akses BACA. |
Ya |
DestinationBucket
|
Nama bucket tujuan. Tipe: String Default: Tidak Ada Kendala: Anda harus memiliki akses WRITE ke bucket tujuan. |
Ya |
DestinationKey
|
Kunci objek tujuan. Tipe: String Default: Tidak Ada Kendala: Anda harus memiliki akses WRITE ke bucket tujuan. |
Ya |
MetadataDirective
|
Menentukan apakah metadata disalin dari objek sumber atau diganti dengan metadata yang disediakan dalam permintaan. Tipe: String Default: COPY Nilai yang valid: COPY | REPLACE Kendala: Nilai selain |
Tidak |
Metadata
|
Menentukan pasangan nama-nilai metadata untuk disetel untuk objek.Jika disetel ke Tipe: String Default: Tidak Ada Kendala: Tidak ada. |
Tidak |
AccessControlList
|
Memberikan akses ke pengguna melalui alamat email atau ID pengguna kanonik. Tipe: String Default: Tidak ada Batasan: Tidak Ada |
Tidak |
CopySourceIfMatch
|
Menyalin objek jika tag entitasnya (ETag) cocok dengan tag yang ditentukan; jika tidak, kembalikan a PreconditionFailed. Tipe: String Default: Tidak Ada Kendala: Tidak ada. Jika Etag tidak cocok, objek tidak disalin. |
Tidak |
CopySourceIfNoneMatch
|
Menyalin objek jika tag entitasnya (ETag) berbeda dari Etag yang ditentukan; jika tidak mengembalikan kesalahan. Tipe: String Default: Tidak Ada Kendala: Tidak ada. |
Tidak |
CopySourceIfUnmodifiedSince
|
Menyalin objek jika belum dimodifikasi sejak waktu yang ditentukan; jika tidak mengembalikan a PreconditionFailed. Jenis: DateTime Default: Tidak Ada |
Tidak |
CopySourceIfModifiedSince
|
Menyalin objek jika telah dimodifikasi sejak waktu yang ditentukan; jika tidak mengembalikan kesalahan. Jenis: DateTime Default: Tidak Ada |
Tidak |
Sintaksis Respons
<CopyObjectResponse xmlns="http://bucket_name.s3.amazonaws.com/2006-03-01"> <CopyObjectResponse> <ETag>"etag"</ETag> <LastModified>timestamp</LastModified> </CopyObjectResponse> </CopyObjectResponse>
Elemen Respons
Berikut ini adalah daftar elemen respons.
catatan
API SOAP tidak mengembalikan spasi putih tambahan. Spasi tambahan hanya dikembalikan oleh REST API.
| Nama | Deskripsi |
|---|---|
Etag
|
Mengembalikan etag objek baru. ETag hanya mencerminkan perubahan pada konten objek, bukan metadatanya. Tipe: String Leluhur: CopyObjectResult |
LastModified
|
Mengembalikan tanggal objek terakhir diubah. Tipe: String Leluhur: CopyObjectResult |
Untuk informasi tentang elemen respons umum, lihat Menggunakan Header Respon Kesalahan REST.
Kesalahan Khusus
Tidak ada kesalahan khusus untuk operasi ini. Untuk informasi tentang kesalahan Amazon S3 umum, lihatDaftar kode kesalahan.
Contoh
Contoh ini menyalin objek flotsam dari bucket pacific ke objek jetsam dari bucket atlantic, dengan mempertahankan metadatanya.
Permintaan Sampel
<CopyObject xmlns="http://doc.s3.amazonaws.com/2006-03-01"> <SourceBucket>pacific</SourceBucket> <SourceObject>flotsam</SourceObject> <DestinationBucket>atlantic</DestinationBucket> <DestinationObject>jetsam</DestinationObject> <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId> <Timestamp>2008-02-18T13:54:10.183Z</Timestamp> <Signature>Iuyz3d3P0aTou39dzbq7RrtSFmw=</Signature> </CopyObject>
Contoh Respons
<CopyObjectResponse xmlns="http://doc.s3.amazonaws.com/2006-03-01"> <CopyObjectResponse> <ETag>"828ef3fdfa96f00ad9f27c383fc9ac7f"</ETag> <LastModified>2008-02-18T13:54:10.183Z</LastModified> </CopyObjectResponse> </CopyObjectResponse>
Contoh ini menyalin objek “tweedledee” dari bucket wonderland ke objek “tweedledum” dari bucket wonderland, menggantikan metadatanya.
Permintaan Sampel
<CopyObject xmlns="http://doc.s3.amazonaws.com/2006-03-01"> <SourceBucket>wonderland</SourceBucket> <SourceObject>tweedledee</SourceObject> <DestinationBucket>wonderland</DestinationBucket> <DestinationObject>tweedledum</DestinationObject> <MetadataDirective >REPLACE</MetadataDirective > <Metadata> <Name>Content-Type</Name> <Value>text/plain</Value> </Metadata> <Metadata> <Name>relationship</Name> <Value>twins</Value> </Metadata> <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId> <Timestamp>2008-02-18T13:54:10.183Z</Timestamp> <Signature>Iuyz3d3P0aTou39dzbq7RrtSFmw=</Signature> </CopyObject>
Contoh Respons
<CopyObjectResponse xmlns="http://doc.s3.amazonaws.com/2006-03-01"> <CopyObjectResponse> <ETag>"828ef3fdfa96f00ad9f27c383fc9ac7f"</ETag> <LastModified>2008-02-18T13:54:10.183Z</LastModified> </CopyObjectResponse> </CopyObjectResponse>