全部产品
Search
文档中心

Object Storage Service:Cara memeriksa apakah objek OSS telah dipulihkan

更新时间:Mar 01, 2026

Objek Archive, Cold Archive, dan Deep Cold Archive harus dipulihkan terlebih dahulu sebelum Anda dapat membacanya. Setelah memulai pemulihan, gunakan salah satu pendekatan berikut untuk memeriksa apakah operasi tersebut telah selesai:

  • Beberapa objek: Panggil HeadObject dan periksa header respons x-oss-restore. Tersedia melalui Konsol OSS, SDK, ossutil, dan API.

  • Banyak objek: Panggil ListObjectsV2, ListObjects, atau ListObjectVersions dan periksa elemen respons RestoreInfo. Hanya tersedia melalui SDK dan API.

Status pemulihan

Kedua pendekatan mengembalikan salah satu dari tiga status berikut:

StatusHeadObject (header x-oss-restore)ListObjects (elemen RestoreInfo)
Belum dipulihkan atau pemulihan kedaluwarsaHeader tidak dikembalikanElemen tidak dikembalikan
Pemulihan sedang berlangsungongoing-request="true"ongoing-request="true"
Pemulihan selesaiongoing-request="false", expiry-date="<date>"ongoing-request="false", expiry-date="<date>"

Saat pemulihan selesai, nilai expiry-date menunjukkan kapan objek kembali menjadi tidak dapat dibaca.

Periksa objek tertentu

Gunakan HeadObject untuk memeriksa status pemulihan satu objek.

Catatan penggunaan

Pemanggilan HeadObject pada banyak objek akan menghasilkan biaya permintaan GET yang tinggi. Untuk informasi selengkapnya, lihat Biaya pemanggilan operasi API. Untuk memeriksa banyak objek sekaligus, gunakan pendekatan kueri batch sebagai gantinya.

Izin

Diperlukan izin oss:GetObject. Untuk informasi selengkapnya, lihat Lampirkan kebijakan kustom ke RAM user.

Konsol OSS

  1. Masuk ke Konsol OSS.

  2. Di panel navigasi kiri, klik Buckets. Di halaman Buckets, klik bucket yang ingin Anda kelola.

  3. Di pohon navigasi kiri, pilih Object Management > Objects.

  4. Di kolom Actions objek yang ingin Anda kelola, klik View Details.

    • Jika tidak ada operasi pemulihan yang dilakukan atau pemulihan kedaluwarsa, Restore ditampilkan di sebelah kanan bidang Object Name di panel View Details.

    • Jika operasi pemulihan sedang berlangsung, Restoring ditampilkan di sebelah kanan bidang Object Name di panel View Details.

    • Jika operasi pemulihan telah selesai, Restored ditampilkan di sebelah kanan bidang Object Name di panel View Details, dan periode waktu tertentu ditampilkan di sebelah kanan bidang Validity Period of Restored Status untuk menunjukkan periode selama objek dapat dibaca.

SDK OSS

Contoh Python berikut memanggil HeadObject untuk memeriksa status pemulihan objek Archive bernama exampleobject.txt di direktori exampledir dalam bucket examplebucket:

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider

# Dapatkan kredensial akses dari variabel lingkungan.
# Pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
auth = oss2.AuthProvider(EnvironmentVariableCredentialsProvider())

# Tentukan titik akhir wilayah tempat bucket berada.
# Contoh: https://oss-cn-hangzhou.aliyuncs.com
# Tentukan nama bucket. Contoh: examplebucket.
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')

# Daftar semua objek dalam direktori exampledir di bucket.
for obj in oss2.ObjectIterator(bucket, prefix='exampledir/'):
    # Periksa apakah kelas penyimpanan adalah Archive, ColdArchive, atau DeepArchive.
    if obj.storage_class in ['Archive', 'ColdArchive', 'DeepArchive']:
        print("etag:", obj.etag)
        print("key:", obj.key)
        print("last_modified:", obj.last_modified)
        print("size:", obj.size)
        print("storage_class:", obj.storage_class)
        print("type:", obj.type)
        print("restore_info:", obj.restore_info)
        print("owner.id:", obj.owner.id)
        print("owner.display_name:", obj.owner.display_name)

Pemulihan selesai — Contoh respons saat ongoing-request bernilai false:

{
    "Server": "AliyunOSS",
    "Date": "Wed, 03 Jan 2024 03:32:58 GMT",
    "Content-Type": "text/plain",
    "Content-Length": "941",
    "Connection": "keep-alive",
    "x-oss-request-id": "6594D56AE80D013535FE****",
    "Accept-Ranges": "bytes",
    "ETag": "\"1797116AF33DB090B2DC79FE70E6F685\"",
    "Last-Modified": "Wed, 03 Jan 2024 03:26:50 GMT",
    "x-oss-object-type": "Normal",
    "x-oss-hash-crc64ecma": "10914985812740272941",
    "x-oss-storage-class": "Archive",
    "x-oss-restore": "ongoing-request=\"false\", expiry-date=\"Thu, 04 Jan 2024 03:28:54 GMT\"",
    "x-oss-expiration": "expiry-date=\"Thu, 04 Jan 2024 00:00:00 GMT\", rule-id=\"ae01d217-94e8-44a6-989a-b89583b****\"",
    "x-oss-version-id": "null",
    "Content-MD5": "F5cRavM9sJCy3Hn+cOb2hQ==",
    "x-oss-server-time": "54"
}

Dalam respons ini, header x-oss-restore menampilkan ongoing-request="false", yang berarti pemulihan telah selesai. Objek dapat dibaca hingga waktu yang ditentukan oleh expiry-date.

Untuk contoh SDK dalam bahasa pemrograman lain, lihat Ikhtisar.

ossutil

Perintah berikut memeriksa status pemulihan exampledir/exampleobject.txt dalam bucket examplebucket:

ossutil stat oss://examplebucket/exampledir/exampleobject.txt

Pemulihan selesai — Contoh respons saat objek telah dipulihkan:

ACL                   : private
Accept-Ranges         : bytes
Content-Length        : 941
Content-Md5           : F5cRavM9sJCy3Hn+cOb2hQ==
Content-Type          : text/plain
Etag                  : 1797116AF33DB090B2DC79FE70E6F685
Last-Modified         : 2024-01-03 11:26:50 +0800 CST
Owner                 : 137918634953****
X-Oss-Expiration      : expiry-date="Thu, 04 Jan 2024 00:00:00 GMT", rule-id="ae01d217-94e8-44a6-989a-b89583b****"
X-Oss-Hash-Crc64ecma  : 10914985812740272941
X-Oss-Object-Type     : Normal
X-Oss-Restore         : ongoing-request="false", expiry-date="Thu, 04 Jan 2024 03:28:54 GMT"
X-Oss-Storage-Class   : Archive
X-Oss-Version-Id      : null

0.291855(s) elapsed

Perhatikan bidang X-Oss-Restore dalam output. Jika tidak ada, objek belum dipulihkan atau pemulihan telah kedaluwarsa. Untuk informasi selengkapnya, lihat stat.

API OSS

Untuk memanggil API RESTful secara langsung, sertakan perhitungan signature dalam kode Anda. Untuk informasi selengkapnya, lihat HeadObject.

Periksa beberapa objek sekaligus

Gunakan ListObjectsV2, ListObjects, atau ListObjectVersions untuk memeriksa status pemulihan beberapa objek berdasarkan awalan.

Penting

Konsol OSS dan ossutil tidak mendukung kueri status pemulihan batch. Gunakan SDK atau API.

Catatan penggunaan

Operasi ini tidak menyaring objek berdasarkan kelas penyimpanan. Untuk memeriksa hanya objek Archive, Cold Archive, atau Deep Cold Archive, filter hasil berdasarkan atribut storage-class di sisi client.

Izin

  • Diperlukan izin oss:ListObjects.

  • Untuk mencantumkan versi objek, diperlukan juga izin oss:ListObjectVersions.

Untuk informasi selengkapnya, lihat Lampirkan kebijakan kustom ke RAM user.

OSS SDKs

Contoh Python berikut memanggil ListObjects untuk mencantumkan objek dengan awalan exampledir/ dalam bucket examplebucket dan mencetak status pemulihannya:

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider

# Dapatkan kredensial akses dari variabel lingkungan.
# Pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
auth = oss2.AuthProvider(EnvironmentVariableCredentialsProvider())

# Tentukan titik akhir wilayah tempat bucket berada.
# Contoh: https://oss-cn-hangzhou.aliyuncs.com
# Tentukan nama bucket. Contoh: examplebucket.
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')

# Cantumkan semua objek dalam direktori exampledir bucket.
for obj in oss2.ObjectIterator(bucket, prefix='exampledir/'):
    # Periksa apakah kelas penyimpanan adalah Archive, Cold Archive, atau Deep Cold Archive.
    if obj.storage_class in ['Archive', 'ColdArchive', 'DeepArchive']:
        print("etag:", obj.etag)
        print("key:", obj.key)
        print("last_modified:", obj.last_modified)
        print("size:", obj.size)
        print("storage_class:", obj.storage_class)
        print("type:", obj.type)
        print("restore_info:", obj.restore_info)
        print("owner.id:", obj.owner.id)
        print("owner.display_name:", obj.owner.display_name)

Contoh respons:

etag: 1797116AF33DB090B2DC79FE70E6F685
key: exampledir/exampleobjec2.txt
last_modified: 1704262519
size: 941
storage_class: DeepColdArchive
type: Normal
restore_info: None
owner.id: 137918634953****
owner.display_name: 137918634953****
etag: 1797116AF33DB090B2DC79FE70E6F685
key: exampledir/exampleobject.txt
last_modified: 1704262504
size: 941
storage_class: ColdArchive
type: Normal
restore_info: None
owner.id: 137918634953****
owner.display_name: 137918634953****
etag: 1797116AF33DB090B2DC79FE70E6F685
key: exampledir/exampleobject1.txt
last_modified: 1704262612
size: 941
storage_class: Archive
type: Normal
restore_info: None
owner.id: 137918634953****
owner.display_name: 137918634953****

Dalam respons ini, restore_info: None berarti tidak ada operasi pemulihan yang dilakukan atau pemulihan telah kedaluwarsa. Saat pemulihan sedang berlangsung, nilainya adalah ongoing-request="true". Saat pemulihan selesai, nilainya mencakup ongoing-request="false" dan expiry-date.

Untuk contoh SDK dalam bahasa pemrograman lain, lihat Ikhtisar.

API OSS

Untuk memanggil API RESTful secara langsung, sertakan perhitungan signature dalam kode Anda. Untuk informasi selengkapnya, lihat ListObjectsV2 (GetBucketV2), GetBucket (ListObjects), dan ListObjectVersions (GetBucketVersions).