Vous devez restaurer les objets des classes de stockage Archive, Cold Archive et Deep Cold Archive avant de pouvoir les lire. La restauration d'un objet crée un réplica temporaire qui coexiste avec l'objet archivé d'origine. Le réplica est automatiquement supprimé à l'expiration de la période de restauration. Cette rubrique explique comment utiliser le SDK Go d'Object Storage Service (OSS) pour restaurer des objets depuis les classes de stockage Archive, Cold Archive et Deep Cold Archive.
Remarques sur l'utilisation
Appelez la méthode RestoreObject uniquement pour les objets des classes de stockage Archive, Cold Archive ou Deep Cold Archive.
Les exemples de cette rubrique utilisent la région Chine (Hangzhou), dont l'ID de région est
cn-hangzhou. Par défaut, les exemples utilisent un endpoint public. Pour accéder à OSS depuis un autre service Alibaba Cloud situé dans la même région, utilisez un endpoint interne. Pour plus d'informations sur les régions et les endpoints pris en charge par OSS, consultez Régions et endpoints.Les exemples de cette rubrique lisent les identifiants d'accès à partir de variables d'environnement. Pour savoir comment configurer les identifiants d'accès, consultez Configurer les identifiants d'accès.
Pour restaurer un objet, vous devez disposer de l'autorisation
oss:RestoreObject. Pour plus d'informations, consultez Accorder une politique personnalisée.
Signature de la méthode
func (c *Client) RestoreObject(ctx context.Context, request *RestoreObjectRequest, optFns ...func(*Options)) (*RestoreObjectResult, error)
Paramètres de la requête
|
Paramètre |
Type |
Description |
|
ctx |
context.Context |
Le contexte de la requête, utilisé pour définir la durée totale du délai d'attente de la requête. |
|
request |
*RestoreObjectRequest |
Les paramètres de la requête. Pour plus d'informations, consultez RestoreObjectRequest. |
|
optFns |
...func(*Options) |
(Facultatif) Les paramètres de configuration au niveau de l'opération. Pour plus d'informations, consultez Options. |
Le tableau suivant décrit les paramètres courants de RestoreObjectRequest.
|
Paramètre |
Type |
Description |
|
bucket |
*string |
Le nom du bucket. |
|
key |
*string |
Le nom de l'objet. |
|
versionId |
*string |
L'ID de version de l'objet à restaurer. Si vous ne spécifiez pas ce paramètre, OSS restaure la dernière version de l'objet. |
|
restoreRequest |
*RestoreRequest |
Les paramètres de la requête de restauration. |
Le tableau suivant décrit les paramètres de RestoreRequest.
|
Paramètre |
Type |
Description |
|
days |
int32 |
Le nombre de jours pendant lesquels l'objet reste dans l'état restauré. Pour plus d'informations, consultez Restaurer des objets. |
|
jobParameters |
*JobParameters |
Les paramètres qui définissent la priorité de restauration. Le champ Tier spécifie le temps nécessaire pour restaurer l'objet. Pour plus d'informations, consultez Restaurer des objets. |
Paramètres de la réponse
|
Paramètre |
Type |
Description |
|
result |
*RestoreObjectResult |
La valeur de retour de l'API. Elle est valide lorsque |
|
err |
error |
Un objet d'erreur non nul si la requête échoue. |
Exemples
Utilisez le code suivant pour restaurer des objets depuis les classes de stockage 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)
}
Cas d'utilisation
Supprimer un réplica temporaire
Références
Pour obtenir l'exemple de code complet relatif à la restauration d'un objet, consultez GitHub.
Pour plus d'informations sur l'opération API permettant de restaurer un objet, consultez RestoreObject.
Pour savoir comment restaurer des objets, consultez Restaurer des objets.