Restauration d'un objet archivé - Amazon Simple Storage Service

Restauration d'un objet archivé

Les objets Amazon S3 stockés dans les classes de stockage S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive ne sont pas immédiatement accessibles. Pour y accéder, vous devez en restaurer une copie temporaire dans leur compartiment S3 pendant une durée spécifiée (nombre de jours). Pour plus d'informations sur l'utilisation de ces classes de stockage, consultez les sections Utilisation des classes de stockage Simple Storage Service (Amazon S3) et Gestion du cycle de vie de votre stockage.

Les objets restaurés depuis S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive sont stockés uniquement pour le nombre de jours que vous spécifiez. Si vous souhaitez une copie permanente de l'objet, créez-en une copie dans votre compartiment Amazon S3. Excepté dans le cas où vous effectuez une copie, l'objet sera toujours stocké dans les classes de stockage S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive.

Pour calculer la date d'expiration, Amazon S3 ajoute le nombre de jours que vous spécifiez à l'heure où vous demandez de restaurer l'objet, puis arrondit au jour suivant à minuit UTC. Ce calcul s'applique à la restauration initiale de l'objet et à chaque extension de la disponibilité que vous demandez. Par exemple, si un objet a été restauré le 15 octobre 2012 à 10 h 30 UTC et le nombre de jours spécifié est de 3, l'objet est donc disponible jusqu'au 19 octobre 2012 à 00 h 00 UTC. Si le 16 octobre 2012 à 11 h 00 UTC, vous modifiez le nombre de jours durant lesquels vous souhaitez qu'il soit accessible à 1, Amazon S3 rend l'objet restauré disponible jusqu'au 18 octobre 2012 à 00 h 00 UTC.

En restaurant un objet archivé, vous payez à la fois pour l'archive et la copie que vous avez temporairement restaurée. Pour obtenir des informations sur la tarification, veuillez consulter Tarification Amazon S3.

Vous pouvez restaurer un objet archivé à l'aide de la console Amazon S3, de l'API REST, des kits SDK AWS et de AWS Command Line Interface (AWS CLI).

Procédez comme suit pour restaurer un objet archivé dans les classes de stockage S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive, vérifier l'état et mettre à niveau une restauration en cours. (La console utilise les noms S3 Glacier Flexible Retrieval et Glacier Deep Archive pour ces classes de stockage.)

Pour restaurer un objet archivé

  1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/.

  2. Dans la liste Buckets (Compartiments), choisissez le nom du compartiment qui contient les objets que vous souhaitez restaurer.

  3. Dans la liste Objets, sélectionnez le ou les objets à restaurer, choisissez Actions, puis Lancer la restauration.

  4. Si vous effectuez une restauration depuis S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive, saisissez le nombre de jours pendant lesquels vous souhaitez que vos données archivées soient accessibles dans la boîte de dialogue Initiate restore (Lancer la restauration).

  5. Dans Options de récupération, effectuez l'une des opérations suivantes :

    • Choisissez Bulk retrieval (Récupération en bloc) ou Standard retrieval (Récupération standard), puis Restaurer.

    • Choisissez Expedited retrieval (Récupération accélérée) (disponible uniquement pour S3 Glacier Flexible Retrieval ou l'accès Archive de S3 Intelligent-Tiering).

  6. La capacité provisionnée n'est disponible que pour les objets se trouvant dans S3 Glacier Flexible Retrieval. Si vous disposez d'une capacité allouée, choisissez Restaurer pour lancer une récupération avec allocation.

    Si vous disposez d'une capacité allouée, toutes vos récupérations rapides sont transmises par le biais de votre capacité allouée. Pour de plus amples informations, veuillez consulter Capacité provisionnée.

    • Si vous ne disposez pas d'une capacité allouée et si vous ne voulez pas en acheter, choisissez Restaurer pour lancer une récupération à la demande.

    • Si vous ne disposez pas d'une capacité allouée, mais si vous souhaitez en acheter, choisissez Ajouter une unité de capacité, puis Acheter. Lorsque le message Réussite de l'achat s'affiche, choisissez Restaurer pour lancer une récupération avec allocation.

Vous pouvez mettre à niveau la vitesse de la restauration pendant que cette dernière est en cours.

Pour mettre à niveau une restauration en cours vers un niveau plus rapide

  1. Ouvrez la console Amazon S3 sur https://console.aws.amazon.com/s3/.

  2. Dans la liste Nom du compartiment, choisissez le nom du compartiment qui contient les objets que vous souhaitez restaurer.

  3. Dans la liste Objects (Objets), sélectionnez un ou plusieurs objets que vous restaurez et choisissez Actions, puis Restore from S3 Glacier Flexible Retrieval (Restaurer depuis S3 Glacier Flexible Retrieval). Pour de plus amples informations sur la vérification du statut de restauration d'un objet, veuillez consulter Vérification du statut de la restauration et de la date d'expiration.

  4. Choisissez le niveau auquel vous souhaitez passer, puis choisissez Restaurer.

    Pour en savoir plus sur la mise à niveau vers un niveau de restauration plus rapide, consultez Mise à niveau de la vitesse d'une restauration en cours.

    Note

    Les restaurations standard et par lots pour S3 Intelligent-Tiering (hiérarchisation intelligente) sont gratuites. Toutefois, des demandes de restauration ultérieures appelées sur un objet déjà en cours de restauration sont facturées en tant que demande GET.

Vérification du statut de la restauration et de la date d'expiration

Pour contrôler la progression de la restauration, consultez la page Présentation de l'objet. Pour de plus amples informations, veuillez consulter Affichage d'une présentation d'un objet dans la console Amazon S3. Cette page montrera que la restauration est en cours.

Si vous effectuez une restauration depuis S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive, la copie temporaire de Object overview (Présentation de l'objet) affiche la valeur Restoration expiry date (Date d'expiration de la restauration). Amazon S3 supprimera la copie restaurée de votre archive à la date mentionnée.

Les objets restaurés depuis S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive sont stockés uniquement pour le nombre de jours que vous spécifiez. Si vous souhaitez une copie permanente de l'objet, créez-en une copie dans votre compartiment Amazon S3.

Une fois un objet restauré, vous pouvez le télécharger à partir de la page Présentation. Pour de plus amples informations, veuillez consulter Affichage d'une présentation d'un objet dans la console Amazon S3.

Java

L'exemple suivant restaure une copie d'un objet archivé à l'aide du kit AWS SDK for Java. L'exemple initie une demande de restauration pour l'objet archivé spécifié et vérifie son statut de restauration.

Pour obtenir les instructions sur la création et le test d'un exemple pratique, consultez Test des exemples de code Java Amazon S3.

import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.ObjectMetadata; import com.amazonaws.services.s3.model.RestoreObjectRequest; import java.io.IOException; public class RestoreArchivedObject { public static void main(String[] args) throws IOException { Regions clientRegion = Regions.DEFAULT_REGION; String bucketName = "*** Bucket name ***"; String keyName = "*** Object key ***"; try { AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .withCredentials(new ProfileCredentialsProvider()) .withRegion(clientRegion) .build(); // Create and submit a request to restore an object from Glacier for two days. RestoreObjectRequest requestRestore = new RestoreObjectRequest(bucketName, keyName, 2); s3Client.restoreObjectV2(requestRestore); // Check the restoration status of the object. ObjectMetadata response = s3Client.getObjectMetadata(bucketName, keyName); Boolean restoreFlag = response.getOngoingRestore(); System.out.format("Restoration status: %s.\n", restoreFlag ? "in progress" : "not in progress (finished or failed)"); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it, so it returned an error response. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3. e.printStackTrace(); } } }
.NET

L'exemple C# suivant initie une demande pour restaurer un objet archivé pendant 2 jours. Amazon S3 conserve le statut de restauration dans les métadonnées de l'objet. Après l'envoi de la demande, l'exemple récupère les métadonnées d'objet et vérifie la valeur de la propriété RestoreInProgress.

Pour obtenir les instructions sur la création et le test d'un exemple pratique, consultez Exécution des exemples de code .NET Amazon S3.

using Amazon; using Amazon.S3; using Amazon.S3.Model; using System; using System.Threading.Tasks; namespace Amazon.DocSamples.S3 { class RestoreArchivedObjectTest { private const string bucketName = "*** bucket name ***"; private const string objectKey = "** archived object key name ***"; // Specify your bucket region (an example region is shown). private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2; private static IAmazonS3 client; public static void Main() { client = new AmazonS3Client(bucketRegion); RestoreObjectAsync(client, bucketName, objectKey).Wait(); } static async Task RestoreObjectAsync(IAmazonS3 client, string bucketName, string objectKey) { try { var restoreRequest = new RestoreObjectRequest { BucketName = bucketName, Key = objectKey, Days = 2 }; RestoreObjectResponse response = await client.RestoreObjectAsync(restoreRequest); // Check the status of the restoration. await CheckRestorationStatusAsync(client, bucketName, objectKey); } catch (AmazonS3Exception amazonS3Exception) { Console.WriteLine("An AmazonS3Exception was thrown. Exception: " + amazonS3Exception.ToString()); } catch (Exception e) { Console.WriteLine("Exception: " + e.ToString()); } } static async Task CheckRestorationStatusAsync(IAmazonS3 client, string bucketName, string objectKey) { GetObjectMetadataRequest metadataRequest = new GetObjectMetadataRequest { BucketName = bucketName, Key = objectKey }; GetObjectMetadataResponse response = await client.GetObjectMetadataAsync(metadataRequest); Console.WriteLine("restoration status: {0}", response.RestoreInProgress ? "in-progress" : "finished or failed"); } } }

Amazon S3 fournit une API pour vous permettre de lancer une restauration d'archive. Pour plus d'informations, veuillez consulter RestoreObject dans la Référence d'API Amazon Simple Storage Service.

Utilisez la commande restore-object pour restaurer des objets à partir de S3 Glacier Flexible Retrieval.

L'exemple suivant restaure l'objet dir1/example.obj dans awsexamplebucket pendant 25 jours.

aws s3api restore-object --bucket awsexamplebucket --key dir1/example.obj --restore-request '{"Days":25,"GlacierJobParameters":{"Tier":"Standard"}}'

Si la syntaxe JSON utilisée dans cet exemple génère une erreur sur un client Windows, remplacez la demande de restauration par la syntaxe suivante :

--restore-request Days=25,GlacierJobParameters={"Tier"="Standard"}

Vous pouvez utiliser la commande suivante pour surveiller le statut de votre demande restore-object :

aws s3api head-object --bucket awsexamplebucket --key dir1/example.obj

Pour de plus amples informations, veuillez consulter restore-object dans la Référence de la AWS CLI.