Objetos nas classes de armazenamento Archive, Cold Archive e Deep Cold Archive não estão acessíveis imediatamente. Restaure-os antes de lê-los. Este tópico descreve como restaurar esses objetos com o iOS SDK.
Pré-requisitos
Antes de começar, verifique se você tem:
Uma instância do OSSClient. Para mais informações, consulte Inicialização.
Um objeto armazenado na classe de armazenamento Archive, Cold Archive ou Deep Cold Archive
A permissão
oss:RestoreObjectpara o bucket
Código de exemplo
O código a seguir mostra como restaurar um objeto Archive, Cold Archive ou Deep Cold Archive chamado exampleobject.txt em um bucket chamado 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 uma solicitação de restauração não torna o objeto acessível imediatamente. O processo de restauração ocorre de forma assíncrona e o tempo de conclusão varia conforme a classe de armazenamento.
Tratamento de erros
Erros comuns ao restaurar objetos:
|
Código de erro |
Descrição |
Solução |
|
NoSuchKey |
O objeto especificado não existe |
Verifique a chave do objeto e o nome do bucket |
|
OperationNotSupported |
O objeto não permite restauração porque não pertence a uma classe de armazenamento arquivada |
Confirme se a classe de armazenamento do objeto é Archive, Cold Archive ou Deep Cold Archive. Apenas objetos arquivados exigem restauração. |
|
RestoreAlreadyInProgress |
Já existe uma solicitação de restauração em andamento para este objeto |
Aguarde a conclusão da restauração existente |
Referências
Para a referência completa da API, consulte RestoreObject
Para obter informações sobre como inicializar uma instância do OSSClient, consulte Inicialização