

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mengganti nama objek dalam ember direktori
<a name="directory-buckets-objects-rename"></a>

Dengan menggunakan `RenameObject` operasi ini, Anda dapat mengganti nama objek yang ada secara atomik di bucket direktori yang menggunakan kelas penyimpanan S3 Express One Zone, tanpa pergerakan data apa pun. Anda dapat mengganti nama objek dengan menentukan nama objek yang ada sebagai sumber dan nama baru objek sebagai tujuan dalam bucket direktori yang sama. Operasi `RenameObject` API tidak akan berhasil pada objek yang diakhiri dengan karakter pembatas garis miring (`/`). Untuk informasi selengkapnya, lihat [Menamai objek Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html).

`RenameObject`Operasi biasanya selesai dalam milidetik terlepas dari ukuran objek. Kemampuan ini mempercepat aplikasi seperti manajemen file log, pemrosesan media, dan analisis data. Selain itu, `RenameObject` mempertahankan semua properti metadata objek, termasuk kelas penyimpanan, jenis enkripsi, tanggal pembuatan, tanggal modifikasi terakhir, dan properti checksum.

**catatan**  
`RenameObject`hanya didukung untuk objek yang disimpan di kelas penyimpanan S3 Express One Zone.

 Untuk memberikan akses ke `RenameObject` operasi, kami sarankan Anda menggunakan `CreateSession` operasi untuk otorisasi berbasis sesi. Secara khusus, Anda memberikan `s3express:CreateSession` izin ke bucket direktori dalam kebijakan bucket atau kebijakan berbasis identitas. Kemudian, Anda melakukan panggilan `CreateSession` API di bucket direktori untuk mendapatkan token sesi. Dengan token sesi di header permintaan Anda, Anda dapat membuat permintaan API untuk operasi ini. Setelah token sesi kedaluwarsa, Anda membuat panggilan `CreateSession` API lain untuk menghasilkan token sesi baru untuk digunakan. AWS CLI dan AWS SDKs akan membuat dan mengelola sesi Anda termasuk menyegarkan token sesi secara otomatis untuk menghindari gangguan layanan ketika sesi berakhir. Untuk informasi selengkapnya tentang otorisasi, lihat [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html)di Referensi *API Amazon S3*. Untuk mempelajari lebih lanjut tentang operasi API titik akhir Zonal, lihat [Mengotorisasi operasi API titik akhir Zonal](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-create-session.html) dengan. `CreateSession` 

 Jika Anda tidak ingin menimpa objek yang ada, Anda dapat menambahkan header `If-None-Match` bersyarat dengan nilai `‘*’` dalam permintaan. `RenameObject` Amazon S3 mengembalikan `412 Precondition Failed` kesalahan jika nama objek sudah ada. Untuk informasi selengkapnya, lihat [https://docs.aws.amazon.com/AmazonS3/latest/API/API_RenameObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_RenameObject.html) di *Referensi API Amazon S3*. 

 `RenameObject`adalah operasi API titik akhir Zonal (operasi tingkat objek atau bidang data) yang dicatat. AWS CloudTrail Anda dapat menggunakan CloudTrail untuk mengumpulkan informasi tentang `RenameObject` operasi yang dilakukan pada objek Anda dalam ember direktori. Untuk informasi selengkapnya, lihat [Logging with AWS CloudTrail untuk bucket direktori](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-one-zone-logging.html) dan [contoh file CloudTrail log untuk bucket direktori](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-log-files.html). 

S3 Express One Zone adalah satu-satunya kelas penyimpanan yang mendukung`RenameObject`, yang harganya sama dengan`PUT`,, `COPY``POST`, dan `LIST` permintaan (per 1.000 permintaan) di S3 Express One Zone. Untuk informasi selengkapnya, lihat [Harga Amazon S3](https://aws.amazon.com/s3/pricing/). 

## Mengganti nama objek
<a name="directory-bucket-rename"></a>

Untuk mengganti nama objek di bucket direktori, Anda dapat menggunakan konsol Amazon S3, AWS CLI AWS SDKs, REST API, atau Mountpoint untuk Amazon S3 (versi 1.19.0 atau lebih tinggi).

### Menggunakan konsol S3
<a name="set-rename--console"></a>

**Untuk mengganti nama objek dalam ember direktori**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Di panel navigasi, pilih **Bucket**, lalu pilih tab Ember **direktori**. Arahkan ke bucket direktori Amazon S3 yang berisi objek yang ingin Anda ganti namanya.

1. Pilih kotak centang untuk objek yang ingin Anda ganti namanya.

1. Pada menu **Tindakan**, pilih **Ganti nama objek**.

1. Di kotak **Nama objek baru**, masukkan nama baru untuk objek tersebut.
**catatan**  
Jika Anda menentukan nama objek yang sama dengan objek yang ada, operasi akan gagal dan Amazon S3 mengembalikan kesalahan. `412 Precondition Failed` Panjang nama kunci objek tidak dapat melebihi 1.024 byte. Awalan yang termasuk dalam jumlah nama objek terhadap panjang total. 

1. Pilih **Ganti nama objek**. Amazon S3 mengganti nama objek Anda. 

### Menggunakan AWS CLI
<a name="set-rename--cli"></a>

`rename-object`Contoh menunjukkan bagaimana Anda dapat menggunakan AWS CLI untuk mengganti nama objek. Untuk menjalankan perintah ini, ganti {{user input placeholders}} dengan informasi Anda sendiri

Contoh berikut menunjukkan cara mengganti nama objek dengan pemeriksaan bersyarat pada objek sumber. ETag 

```
aws s3api rename-object \                                    
    --bucket {{amzn-s3-demo-bucket--usw2-az1--x-s3}} \
    --key {{new-file.txt}} \
    --rename-source {{original-file.txt}} \
    --source-if-match "\"{{a1b7c3d2e5f6}}\""
```

Perintah ini melakukan hal berikut:
+ Mengganti nama objek dari {{original-file.txt}} ke {{new-file.txt}} dalam ember {{amzn-s3-demo-bucket--usw2-az1--x-s3}} direktori.
+ Hanya melakukan penggantian nama jika objek sumber ETag cocok dengan "{{a1b7c3d4e5f6}}”.

Jika ETag tidak cocok, operasi akan gagal dengan `412 Precondition Failed` kesalahan. 

Contoh berikut menunjukkan cara mengganti nama objek dengan pemeriksaan bersyarat pada nama objek yang ditentukan baru.

```
aws s3api rename-object \
    --bucket {{amzn-s3-demo-bucket--usw2-az1--x-s3}} \
    --key {{new-file.txt}} \
    --rename-source {{amzn-s3-demo-bucket--usw2-az1--x-s3}}/{{original-file.txt}} \
    --destination-if-none-match "\"{{e5f3g7h8i9j0}}\""
```

Perintah ini melakukan hal berikut:
+ Mengganti nama objek dari {{original-file.txt}} ke {{new-file.txt}} dalam ember {{amzn-s3-demo-bucket--usw2-az1--x-s3}} direktori.
+ Hanya melakukan operasi ganti nama jika objek ada dan objek ETag tidak cocok "{{e5f3g7h8i9j0}}”.

Jika objek sudah ada dengan nama yang ditentukan baru dan pencocokan ETag, operasi akan gagal dengan `412 Precondition Failed` kesalahan. 

### Menggunakan AWS SDKs
<a name="directory-bucket-rename-sdks"></a>

------
#### [ SDK for Java ]

Anda dapat menggunakan AWS SDK untuk Java untuk mengganti nama objek Anda. Untuk menggunakan contoh-contoh ini, ganti {{user input placeholders}} dengan informasi Anda sendiri

Contoh berikut menunjukkan cara membuat `RenameObjectRequest` menggunakan AWS SDK for Java

```
String key = "{{key}}";
String newKey = "{{new-key}}";
String expectedETag = "{{e5f3g7h8i9j0}}";
RenameObjectRequest renameRequest = RenameObjectRequest.builder()
    .bucket({{amzn-s3-demo-bucket--usw2-az1--x-s3}})
    .key({{newKey}})
    .renameSource({{key}})
    .destinationIfMatch({{e5f3g7h8i9j0}})
    .build();
```

Kode ini melakukan hal berikut:
+ Buat permintaan untuk mengganti nama objek dari "{{key}}" menjadi "{{new-key}}" di ember {{amzn-s3-demo-bucket--usw2-az1--x-s3}} direktori.
+ Termasuk kondisi bahwa penggantian nama hanya akan terjadi jika objek ETag cocok "{{e5f3g7h8i9j0}}”. 
+ Jika ETag tidak cocok atau objek tidak ada, operasi akan gagal.

Contoh berikut menunjukkan cara membuat `RenameObjectRequest` dengan kondisi none-match menggunakan AWS SDK for Java.

```
String key = "{{key}}";
String newKey = "{{new-key}}";
String noneMatchETag = "{{e5f3g7h8i9j0}}";
RenameObjectRequest renameRequest = RenameObjectRequest.builder()
    .bucket({{amzn-s3-demo-bucket--usw2-az1--x-s3}})
    .key({{newKey}})
    .renameSource({{key}})
    .destinationIfNoneMatch(noneMatchETag)
    .build();
```

Kode ini melakukan hal berikut:
+ Membuat permintaan untuk mengganti nama objek dari "{{key}}" menjadi "{{new-key}}" di ember {{amzn-s3-demo-bucket--usw2-az1--x-s3}} direktori.
+ Termasuk kondisi yang digunakan `.destinationIfNoneMatch(noneMatchETag)` yang memastikan penggantian nama hanya akan terjadi jika objek tujuan ETag tidak cocok "{{e5f3g7h8i9j0}}”.

Operasi akan gagal dengan `412 Precondition Failed` kesalahan jika ada objek dengan nama yang ditentukan baru dan memiliki yang ditentukan ETag. 

------
#### [ SDK for Python ]

Anda dapat menggunakan SDK untuk Python untuk mengganti nama objek Anda. Untuk menggunakan contoh ini, ganti {{user input placeholders}} dengan informasi Anda sendiri.

Contoh berikut menunjukkan cara mengganti nama objek menggunakan AWS SDK for Python (Boto3).

```
def basic_rename(bucket, source_key, destination_key):
    try:
        s3.rename_object(
            Bucket={{amzn-s3-demo-bucket--usw2-az1--x-s3}},
            Key={{destination_key}},
            RenameSource=f"{{{source_key}}}"
        )
        print(f"Successfully renamed {{{source_key}}} to {{{destination_key}}}")
    except ClientError as e:
        print(f"Error renaming object: {e}")
```

Kode ini melakukan hal berikut:
+ Mengganti nama objek dari {{source\_key}} ke {{destination\_key}} dalam ember {{amzn-s3-demo-bucket--usw2-az1--x-s3}} direktori.
+ Mencetak pesan sukses jika penggantian nama objek Anda berhasil atau mencetak pesan kesalahan jika gagal.

Contoh berikut menunjukkan cara mengganti nama objek dengan `SourceIfMatch` dan `DestinationIfNoneMatch` kondisi menggunakan AWS SDK for Python (Boto3).

```
def rename_with_conditions(bucket, source_key, destination_key, source_etag, dest_etag):
    try:
        s3.rename_object(
            Bucket={{amzn-s3-demo-bucket--usw2-az1--x-s3}},
            Key={{destination_key}},
            RenameSource=f"{{{amzn-s3-demo-bucket--usw2-az1--x-s3}}}/{{{source_key}}}",
            SourceIfMatch={{source_ETag}},
            DestinationIfNoneMatch={{dest_ETag}}
        )
        print(f"Successfully renamed {{{source_key}}} to {{{destination_key}}} with conditions")
    except ClientError as e:
        print(f"Error renaming object: {e}")
```

Kode ini melakukan hal berikut:
+ Melakukan operasi penggantian nama bersyarat dan menerapkan dua kondisi, `SourceIfMatch` dan. `DestinationIfNoneMatch` Kombinasi kondisi ini memastikan bahwa objek belum dimodifikasi dan bahwa objek belum ada dengan nama yang ditentukan baru. 
+ Mengganti nama objek dari {{source\_key}} ke {{destination\_key}} dalam ember {{amzn-s3-demo-bucket--usw2-az1--x-s3}} direktori.
+ Mencetak pesan sukses jika penggantian nama objek Anda berhasil, atau mencetak pesan kesalahan jika gagal atau jika kondisi tidak terpenuhi.

------
#### [ SDK for Rust ]

Anda dapat menggunakan SDK for Rust untuk mengganti nama objek Anda. Untuk menggunakan contoh ini, ganti {{user input placeholders}} dengan informasi Anda sendiri.

Contoh berikut menunjukkan cara mengganti nama objek di bucket {{amzn-s3-demo-bucket--usw2-az1--x-s3}} direktori menggunakan SDK untuk Rust.

```
async fn basic_rename_example(client: &Client) -> Result<(), Box<dyn Error>> {
    let response = client
        .rename_object()
        .bucket(" {{amzn-s3-demo-bucket--usw2-az1--x-s3}}")
        .key("{{new-name.txt}}")  // New name/path for the object
        .rename_source("{{old-name.txt}}")  // Original object name/path
        .send()
        .await?;
    Ok(())
}
```

Kode ini melakukan hal berikut:
+ Membuat permintaan untuk mengganti nama objek dari "{{old-name.tx}}" menjadi "{{new-name.txt}}" di ember {{amzn-s3-demo-bucket--usw2-az1--x-s3}} direktori.
+ Mengembalikan `Result` jenis untuk menangani potensi kesalahan. 

------

### Penggunaan API REST
<a name="directory-bucket-rename-api"></a>

 Anda dapat mengirim permintaan REST untuk mengganti nama objek. Untuk informasi selengkapnya, lihat [https://docs.aws.amazon.com/AmazonS3/latest/API/API_RenameObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_RenameObject.html) di *Referensi API Amazon S3*. 

### Menggunakan Mountpoint untuk Amazon S3
<a name="directory-bucket-rename-api"></a>

 Dimulai dengan versi 1.19.0 atau lebih tinggi, Mountpoint untuk Amazon S3 mendukung penggantian nama objek di S3 Express One Zone. Untuk informasi lebih lanjut tentang Mountpoint, lihat [Bekerja dengan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mountpoint.html) Mountpoint.