

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

# Mengambil versi objek dari bucket dengan dukungan Penentuan Versi
<a name="RetrievingObjectVersions"></a>

Penentuan Versi di Amazon S3 adalah cara menyimpan beberapa varian objek dalam bucket yang sama. Permintaan `GET` sederhana mengambil versi saat ini dari sebuah objek. Gambar berikut menunjukkan bagaimana `GET` mengembalikan versi objek saat ini, `photo.gif`.

![\[Ilustrasi yang menunjukkan bagaimana GET mengembalikan versi objek saat ini.\]](http://docs.aws.amazon.com/id_id/AmazonS3/latest/userguide/images/versioning_GET_NoVersionID.png)


Untuk mengambil versi tertentu, Anda harus menentukan ID versinya. Gambar berikut menunjukkan bahwa permintaan `GET versionId` mengambil versi objek yang ditentukan (tidak harus versi saat ini).

![\[Ilustrasi yang menunjukkan bagaimana GET versionId permintaan mengambil versi tertentu dari objek.\]](http://docs.aws.amazon.com/id_id/AmazonS3/latest/userguide/images/versioning_GET_Versioned.png)


Anda dapat mengambil versi objek di Amazon S3 menggunakan konsol AWS SDKs,, atau REST API.

**catatan**  
 Untuk mengakses versi objek yang lebih lama dari 300 versi, Anda harus menggunakan AWS CLI atau URL objek.

## Menggunakan konsol S3
<a name="retrieving-object-versions"></a>

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 dalam daftar **Bucket**, pilih nama bucket yang berisi objek.

1. Di daftar **Objek**, pilih nama objek.

1. Pilih **Versi**.

   Amazon S3 menampilkan semua versi untuk objek tersebut.

1. Pilih kotak centang di sebelah **ID Versi** untuk versi yang ingin Anda ambil.

1. Pilih **Tindakan**, pilih **Unduh**, dan simpan objek.

Anda juga dapat melihat, mengunduh, dan menghapus versi objek di panel ikhtisar objek. Untuk informasi selengkapnya, lihat [Melihat properti objek di konsol Amazon S3](view-object-properties.md).

**penting**  
Anda dapat membatalkan penghapusan objek hanya jika objek tersebut dihapus sebagai versi terbaru (saat ini). Anda tidak dapat membatalkan penghapusan objek versi sebelumnya. Untuk informasi selengkapnya, lihat [Mempertahankan beberapa versi objek dengan Versi S3](Versioning.md).

## Menggunakan AWS SDKs
<a name="retrieve-obj-version-sdks"></a>

Contoh untuk pengunggahan objek dalam bucket tanpa versi dan dengan dukungan Penentuan Versi adalah sama. Namun, untuk bucket dengan dukungan Penentuan Versi, Amazon S3 menetapkan nomor versi. Jika tidak, nomor versi adalah null.

Untuk contoh mengunduh objek yang menggunakan AWS SDKs Java, .NET, dan PHP, lihat [Mengunduh objek](https://docs.aws.amazon.com/AmazonS3/latest/userguide/download-objects.html).

Untuk contoh mencantumkan versi objek yang digunakan AWS SDKs untuk.NET dan Rust, lihat [Daftar versi objek dalam bucket Amazon S3](https://docs.aws.amazon.com/code-library/latest/ug/s3_example_s3_ListObjectVersions_section.html).

## Penggunaan API REST
<a name="retrieve-obj-version-rest"></a>

**Untuk mengambil versi objek tertentu**

1. Atur `versionId` ke ID versi objek yang ingin Anda ambil.

1. Kirim permintaan `GET Object versionId`.

**Example — Mengambil objek berversi**  
Permintaan berikut mengambil versi `L4kqtJlcpXroDTDmpUMLUo` dari `my-image.jpg`.  

```
1. GET /my-image.jpg?versionId=L4kqtJlcpXroDTDmpUMLUo HTTP/1.1
2. Host: bucket.s3.amazonaws.com
3. Date: Wed, 28 Oct 2009 22:32:00 GMT
4. Authorization: AWS AKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
```

Anda hanya dapat mengambil metadata dari suatu objek (bukan konten). Untuk informasi, lihat [Mengambil metadata versi objek](RetMetaOfObjVersion.md).

Untuk informasi tentang memulihkan versi objek sebelumnya, lihat [Memulihkan versi sebelumnya](RestoringPreviousVersions.md).

# Mengambil metadata versi objek
<a name="RetMetaOfObjVersion"></a>

Jika Anda hanya ingin mengambil metadata suatu objek (dan bukan kontennya), Anda menggunakan operasi `HEAD`. Secara default, Anda mendapatkan metadata versi terbaru. Untuk mengambil metadata versi objek tertentu, Anda menentukan ID versinya.

**Untuk mengambil metadata versi objek**

1. Atur `versionId` ke ID versi objek yang ingin Anda ambil metadatanya.

1. Kirim permintaan `HEAD Object versionId`.

**Example — Mengambil metadata dari objek berversi**  
Permintaan berikut mengambil metadata versi `3HL4kqCxf3vjVBH40Nrjfkd` dari `my-image.jpg`.  

```
1. HEAD /my-image.jpg?versionId=3HL4kqCxf3vjVBH40Nrjfkd HTTP/1.1
2. Host: bucket.s3.amazonaws.com
3. Date: Wed, 28 Oct 2009 22:32:00 GMT
4. Authorization: AWS AKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
```

Berikut ini menunjukkan respons sampel.

```
 1. HTTP/1.1 200 OK
 2. x-amz-id-2: ef8yU9AS1ed4OpIszj7UDNEHGran
 3. x-amz-request-id: 318BC8BC143432E5
 4. x-amz-version-id: 3HL4kqtJlcpXroDTDmjVBH40Nrjfkd
 5. Date: Wed, 28 Oct 2009 22:32:00 GMT
 6. Last-Modified: Sun, 1 Jan 2006 12:00:00 GMT
 7. ETag: "fba9dede5f27731c9771645a39863328"
 8. Content-Length: 434234
 9. Content-Type: text/plain
10. Connection: close
11. Server: AmazonS3
```

# Memulihkan versi sebelumnya
<a name="RestoringPreviousVersions"></a>

Anda dapat menggunakan Penentuan Versi untuk mengambil versi sebelumnya dari objek. Ada dua pendekatan untuk melakukannya:
+ Salin versi objek sebelumnya ke dalam bucket yang sama.

  Objek yang disalin menjadi versi saat ini dari objek tersebut dan semua versi objek dipertahankan.
+ Hapus versi objek saat ini secara permanen.

  Ketika versi objek saat ini dihapus, Anda, akibatnya, mengubah versi sebelumnya menjadi versi saat ini dari objek tersebut.

Karena semua versi objek dipertahankan, Anda dapat membuat versi yang lebih awal dari versi saat ini dengan menyalin versi tertentu dari objek tersebut ke dalam bucket yang sama. Pada gambar berikut, objek sumber (ID = 111111) disalin ke dalam bucket yang sama. Amazon S3 memasok ID baru (88778877) dan menjadi versi objek saat ini. Jadi, bucket memiliki objek versi asli (111111) dan salinannya (88778877). Untuk informasi selengkapnya tentang mendapatkan versi sebelumnya dan kemudian mengunggahnya untuk menjadikannya versi saat ini, lihat [Mengambil versi objek dari bucket dengan dukungan Penentuan Versi](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RetrievingObjectVersions.html) dan [Mengunggah objek](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html).

![\[Ilustrasi yang menunjukkan penyalinan versi tertentu dari suatu objek ke dalam bucket yang sama untuk menjadikannya versi saat ini.\]](http://docs.aws.amazon.com/id_id/AmazonS3/latest/userguide/images/versioning_COPY2.png)


`GET` berikutnya mengambil versi 88778877.

Gambar berikut menunjukkan bagaimana menghapus versi saat ini (121212) dari suatu objek menjadikan versi sebelumnya (111111) sebagai objek saat ini. Untuk informasi selengkapnya tentang menghapus objek, lihat [Menghapus satu objek](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-objects.html).

![\[Ilustrasi yang menunjukkan penghapusan versi objek saat ini meninggalkan versi sebelumnya sebagai objek saat ini.\]](http://docs.aws.amazon.com/id_id/AmazonS3/latest/userguide/images/versioning_COPY_delete2.png)


`GET` berikutnya mengambil versi 111111.

**catatan**  
Untuk mengembalikan versi objek dalam batch, Anda dapat [menggunakan operasi `CopyObject`](https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops-copy-object.html). Operasi salin dapat menyalin setiap objek yang ditentukan dalam manifes. Namun, ketahuilah bahwa objek tidak selalu disalin dalam urutan yang sama seperti yang tercantum dalam manifes. Untuk bucket berversi, jika mempertahankan urutan versi terkini/nonterkini bersifat penting, Anda harus menyalin semua versi nonterkini terlebih dahulu. Kemudian, setelah pekerjaan pertama selesai, salin versi terbaru pada pekerjaan berikutnya.

## Untuk mengembalikan versi objek sebelumnya
<a name="restoring-obj-version-version-enabled-bucket-examples"></a>

Untuk panduan selengkapnya tentang memulihkan objek yang dihapus, [lihat Bagaimana cara mengambil objek Amazon S3 yang telah dihapus dalam bucket berkemampuan versi?](https://repost.aws/knowledge-center/s3-undelete-configuration) di pusat AWS re:Post pengetahuan.

### Menggunakan konsol S3
<a name="retrieving-object-versions"></a>

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 dalam daftar **Bucket**, pilih nama bucket yang berisi objek.

1. Di daftar **Objek**, pilih nama objek.

1. Pilih **Versi**.

   Amazon S3 menampilkan semua versi untuk objek tersebut.

1. Pilih kotak centang di sebelah **ID Versi** untuk versi yang ingin Anda ambil.

1. Pilih **Tindakan**, pilih **Unduh**, dan simpan objek.

Anda juga dapat melihat, mengunduh, dan menghapus versi objek di panel ikhtisar objek. Untuk informasi selengkapnya, lihat [Melihat properti objek di konsol Amazon S3](view-object-properties.md).

**penting**  
Anda dapat membatalkan penghapusan objek hanya jika objek tersebut dihapus sebagai versi terbaru (saat ini). Anda tidak dapat membatalkan penghapusan objek versi sebelumnya. Untuk informasi selengkapnya, lihat [Mempertahankan beberapa versi objek dengan Versi S3](Versioning.md).

### Menggunakan AWS SDKs
<a name="restoring-obj-version-version-enabled-bucket-sdks"></a>

Untuk informasi tentang menggunakan yang lain AWS SDKs, lihat [Pusat AWS Pengembang](https://aws.amazon.com/code/). 

------
#### [ Python ]

Contoh kode Python berikut memulihkan versi objek berversi sebelumnya dengan menghapus semua versi yang terjadi setelah versi rollback yang ditentukan.

```
def rollback_object(bucket, object_key, version_id):
    """
    Rolls back an object to an earlier version by deleting all versions that
    occurred after the specified rollback version.

    Usage is shown in the usage_demo_single_object function at the end of this module.

    :param bucket: The bucket that holds the object to roll back.
    :param object_key: The object to roll back.
    :param version_id: The version ID to roll back to.
    """
    # Versions must be sorted by last_modified date because delete markers are
    # at the end of the list even when they are interspersed in time.
    versions = sorted(
        bucket.object_versions.filter(Prefix=object_key),
        key=attrgetter("last_modified"),
        reverse=True,
    )

    logger.debug(
        "Got versions:\n%s",
        "\n".join(
            [
                f"\t{version.version_id}, last modified {version.last_modified}"
                for version in versions
            ]
        ),
    )

    if version_id in [ver.version_id for ver in versions]:
        print(f"Rolling back to version {version_id}")
        for version in versions:
            if version.version_id != version_id:
                version.delete()
                print(f"Deleted version {version.version_id}")
            else:
                break

        print(f"Active version is now {bucket.Object(object_key).version_id}")
    else:
        raise KeyError(
            f"{version_id} was not found in the list of versions for " f"{object_key}."
        )
```

------