Los objetos con clases de almacenamiento Archive, Cold Archive y Deep Cold Archive no están disponibles de inmediato. Es necesario restaurarlos antes de leerlos. En este tema se describe cómo restaurar estos objetos mediante el iOS SDK.
Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
Una instancia de OSSClient. Para obtener más información, consulte Initialization.
Un objeto almacenado con la clase de almacenamiento Archive, Cold Archive o Deep Cold Archive.
El permiso
oss:RestoreObjectpara el bucket.
Código de ejemplo
A continuación se muestra cómo restaurar un objeto llamado exampleobject.txt, con clase de almacenamiento Archive, Cold Archive o Deep Cold Archive, desde un bucket denominado examplebucket:
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];
Importante: enviar una solicitud de restauración no significa que el objeto esté disponible de inmediato. El proceso de restauración se ejecuta de forma asíncrona y su duración depende de la clase de almacenamiento.
Manejo de errores
Errores comunes al restaurar objetos:
|
Código de error |
Descripción |
Solución |
|
NoSuchKey |
El objeto especificado no existe. |
Compruebe la clave del objeto y el nombre del bucket. |
|
OperationNotSupported |
El objeto no admite la restauración porque no pertenece a una clase de almacenamiento archivada. |
Compruebe que la clase de almacenamiento del objeto sea Archive, Cold Archive o Deep Cold Archive. Solo los objetos archivados requieren restauración. |
|
RestoreAlreadyInProgress |
Ya hay una solicitud de restauración en curso para este objeto. |
Espere a que finalice la restauración actual. |
Referencias
Para consultar la referencia completa de la API, consulte RestoreObject.
Para obtener información sobre cómo inicializar una instancia de OSSClient, consulte Initialization.