Objetos nas classes de armazenamento Archive, Cold Archive e Deep Cold Archive precisam ser restaurados antes da leitura. Crie uma réplica temporária ao restaurar um objeto, que coexiste com o objeto arquivado original. Após o término do período de restauração, o sistema exclua a réplica automaticamente. Este tópico explica como usar o SDK do Object Storage Service (OSS) para Go a fim de restaurar objetos das classes de armazenamento Archive, Cold Archive e Deep Cold Archive.
Observações de uso
Chame o método RestoreObject apenas para objetos na classe de armazenamento Archive, Cold Archive ou Deep Cold Archive.
Os exemplos neste tópico usam a região China (Hangzhou) com o ID de região
cn-hangzhou. Por padrão, os exemplos usam um endpoint público. Para acessar o oss a partir de outro service da alibaba cloud na mesma região, use um endpoint interno. Para obter mais informações sobre as regiões e os endpoints compatíveis com o OSS, consulte Regions and endpoints.Os exemplos neste tópico leem as credenciais de acesso a partir de variáveis de ambiente. Para obter mais informações, acesse Configure access credentials, configure as credenciais de acesso, defina as permissões necessárias e especifique a região correta.
Para restaurar um objeto, você deve ter a permissão
oss:RestoreObject. Para obter mais informações, consulte Grant a custom policy.
Assinatura do método
func (c *Client) RestoreObject(ctx context.Context, request *RestoreObjectRequest, optFns ...func(*Options)) (*RestoreObjectResult, error)
Parâmetros da requisição
|
Parâmetro |
Tipo |
Descrição |
|
ctx |
context.Context |
O contexto da requisição; defina a duração total do tempo limite da requisição por meio dele. |
|
request |
*RestoreObjectRequest |
Os parâmetros da requisição. Para obter mais informações, consulte RestoreObjectRequest. |
|
optFns |
...func(*Options) |
(Opcional) Os parâmetros de configuração no nível da operação. Para obter mais informações, consulte Options. |
A tabela a seguir descreve os parâmetros comuns de RestoreObjectRequest.
|
Parâmetro |
Tipo |
Descrição |
|
bucket |
*string |
O nome do bucket. |
|
key |
*string |
O nome do objeto. |
|
versionId |
*string |
O ID de versão do objeto a ser restaurado. Caso você não especifique este parâmetro, o OSS restaura a versão mais recente do objeto. |
|
restoreRequest |
*RestoreRequest |
Os parâmetros da requisição de restauração. |
A tabela a seguir descreve os parâmetros de RestoreRequest.
|
Parâmetro |
Tipo |
Descrição |
|
days |
int32 |
O número de dias durante os quais o objeto permanece no estado restaurado. Para obter mais informações, consulte Restore objects. |
|
jobParameters |
*JobParameters |
Os parâmetros de restauração; especifique a prioridade de restauração por meio deles. O campo Tier indica o tempo necessário para restaurar o objeto. Para obter mais informações, consulte Restore objects. |
Parâmetros de resposta
|
Parâmetro |
Tipo |
Descrição |
|
result |
*RestoreObjectResult |
O valor de retorno da API. É válido quando |
|
err |
error |
Um objeto de erro que é diferente de nil se a requisição falhar. |
Exemplos
Use o código a seguir para restaurar objetos da classe de armazenamento Archive, Cold Archive ou Deep Cold Archive:
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)
// Define global variables for command-line arguments.
var (
region string // The OSS region.
bucketName string // The bucket name.
objectName string // The object name.
)
// init initializes the command-line flags.
func init() {
flag.StringVar(®ion, "region", "", "The region in which the bucket is located.")
flag.StringVar(&bucketName, "bucket", "", "The name of the bucket.")
flag.StringVar(&objectName, "object", "", "The name of the object.")
}
func main() {
// Parse command-line flags.
flag.Parse()
// Check if the bucket name is empty.
if len(bucketName) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, bucket name required")
}
// Check if the region is empty.
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, region required")
}
// Check if the object name is empty.
if len(objectName) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, object name required")
}
// Load the default configuration, and set the credential provider and region.
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
// Create an OSS client.
client := oss.NewClient(cfg)
// Create a request to restore the object.
request := &oss.RestoreObjectRequest{
Bucket: oss.Ptr(bucketName), // The bucket name.
Key: oss.Ptr(objectName), // The object name.
RestoreRequest: &oss.RestoreRequest{
Days: 3, // Set the restoration period to 3 days.
},
}
// Send the request to restore the object.
result, err := client.RestoreObject(context.TODO(), request)
if err != nil {
log.Fatalf("failed to restore object %v", err)
}
// Print the result.
log.Printf("restore object result:%#v\n", result)
}
Casos de uso
exclua uma réplica temporária
Referências
Para obter o código de exemplo completo para restaurar um objeto, consulte GitHub.
Para obter mais informações sobre a operação da API para restaurar um objeto, consulte RestoreObject.
Para obter mais informações sobre como restaurar objetos, consulte Restore objects.