Archive, Cold Archive ve Deep Cold Archive depolama sınıflarındaki nesnelere anında erişilemez; okunabilmeleri için öncelikle geri yüklenmeleri gerekir. Bu konu, iOS SDK kullanarak bu nesnelerin nasıl geri yükleneceğini açıklar.
Ön koşullar
Başlamadan önce şunlara sahip olduğunuzdan emin olun:
Bir OSSClient örneği. Daha fazla bilgi için bkz. Initialization.
Archive, Cold Archive veya Deep Cold Archive depolama sınıfında saklanan bir nesne
Paket için
oss:RestoreObjectizni
Örnek kod
Aşağıdaki kod, examplebucket adlı bir paketten exampleobject.txt adlı bir Archive, Cold Archive veya Deep Cold Archive nesnesinin nasıl geri yükleneceğini gösterir:
OSSRestoreObjectRequest *request = [OSSRestoreObjectRequest new];
// Bucket containing the archived object
request.bucketName = @"examplebucket";
// Full path of the object (do not include the bucket name)
request.objectKey = @"exampleobject.txt";
OSSTask *restoreObjectTask = [client restoreObject:request];
[restoreObjectTask continueWithBlock:^id _Nullable(OSSTask * _Nonnull task) {
if (!task.error) {
NSLog(@"Restore request submitted successfully");
// Note: The object is not immediately accessible.
// Check restoration status before attempting to read.
} else {
NSLog(@"Restore request failed: %@", task.error);
// Handle specific errors (see Error handling section)
}
return nil;
}];
// Use synchronous blocking if you need to wait for request submission to complete
// Not recommended for UI thread as it blocks execution
// [restoreObjectTask waitUntilFinished];
Önemli: Bir geri yükleme isteği göndermek, nesneye hemen erişilebileceği anlamına gelmez. Geri yükleme işlemi eşzamansız olarak yürütülür ve depolama sınıfına bağlı olarak zaman alır.
Hata işleme
Nesneler geri yüklenirken karşılaşılan yaygın hatalar:
| Hata kodu | Açıklama | Çözüm |
|---|---|---|
| NoSuchKey | Belirtilen nesne mevcut değil | Nesne anahtarını ve paket adını doğrulayın |
| OperationNotSupported | Nesne arşivlenmiş bir depolama sınıfında olmadığı için geri yüklemeyi desteklemiyor | Nesnenin depolama sınıfının Archive, Cold Archive veya Deep Cold Archive olduğunu doğrulayın. Yalnızca arşivlenmiş nesnelerin geri yüklenmesi gerekir. |
| RestoreAlreadyInProgress | Bu nesne için zaten devam eden bir geri yükleme isteği var | Mevcut geri yüklemenin tamamlanmasını bekleyin |
İlgili kaynaklar
Tam API referansı için bkz. RestoreObject
Bir OSSClient örneğini başlatma hakkında bilgi için bkz. Initialization