Téléchargement d’objets - Amazon Simple Storage Service

Téléchargement d’objets

Cette section explique comment télécharger des objets depuis un compartiment Amazon S3. Avec Amazon S3, vous pouvez stocker des objets dans un ou plusieurs compartiments, et chaque objet peut atteindre une taille de 5 To. Tout objet Amazon S3 non archivé est accessible en temps réel. Les objets archivés doivent toutefois être restaurés avant de pouvoir être téléchargés. Pour obtenir des informations sur le téléchargement des objets archivés, consultez Téléchargement des objets archivés.

Vous pouvez télécharger un seul objet à l’aide de la console Amazon S3, AWS Command Line Interface (AWS CLI), des kits AWS SDK ou de l’API REST Amazon S3. Pour télécharger un objet depuis S3 sans écrire de code ni exécuter aucune commande, utilisez la console S3. Pour plus d’informations, consultez Téléchargement d’un objet.

Pour télécharger plusieurs objets, utilisez AWS CloudShell, l’interface AWS CLI ou les kits AWS SDK. Pour plus d’informations, consultez Téléchargement de plusieurs objets.

Si vous devez télécharger une partie d’un objet, vous devez utiliser des paramètres supplémentaires avec l’interface AWS CLI ou l’API REST pour spécifier uniquement les octets que vous souhaitez télécharger. Pour plus d’informations, consultez Téléchargement d’une partie d’un objet.

Si vous devez télécharger un objet qui ne vous appartient pas, demandez à son propriétaire de générer une URL présignée qui vous permettra de télécharger l’objet. Pour plus d’informations, consultez Téléchargement d’un objet à partir d’un autre Compte AWS.

Lorsque vous téléchargez des objets en dehors du réseau AWS, des frais de transfert de données s’appliquent. Le transfert de données au sein du réseau AWS est gratuit au sein de la même Région AWS, mais toute demande GET vous sera facturée. Pour plus d’informations sur les coûts de transfert de données et les frais de récupération de données, consultez Tarification Amazon S3.

Téléchargement d’un objet

Vous pouvez télécharger un objet à l’aide de la console Amazon S3, de l’interface AWS CLI, des kits AWS SDK ou de l’API REST.

Cette section explique comment utiliser la console Amazon S3 pour télécharger un objet depuis un compartiment S3.

Note
  • Vous ne pouvez télécharger qu’un seul objet à la fois.

  • Si vous utilisez la console Amazon S3 pour télécharger un objet dont le nom de clé se termine par un point (.), celui-ci est supprimé du nom de clé de l’objet téléchargé. Pour conserver le point à la fin du nom de l’objet téléchargé, vous devez utiliser l’AWS Command Line Interface (AWS CLI), les kits AWS SDK ou l’API REST Amazon S3.

Pour télécharger un objet à partir d’un compartiment S3
  1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon S3 à l’adresse https://console.aws.amazon.com/s3/.

  2. Dans le volet de navigation de gauche, choisissez Compartiments à usage général ou Compartiments de répertoires.

  3. Dans la liste des compartiments, choisissez le nom du compartiment à partir duquel vous souhaitez télécharger un objet.

  4. Vous pouvez télécharger un objet à partir d’un compartiment S3 de l’une des façons suivantes :

    • Cochez la case à côté de l’objet et choisissez Télécharger. Si vous souhaitez télécharger l’objet dans un dossier spécifique, dans le menu Actions, choisissez Télécharger en tant que.

    • Si vous souhaitez télécharger une version spécifique de l’objet, activez Afficher les versions (en regard de la zone de recherche). Cochez la case à côté de la version de l’objet de votre choix, puis choisissez Télécharger. Si vous souhaitez télécharger l’objet dans un dossier spécifique, dans le menu Actions, choisissez Télécharger en tant que.

L’exemple de commande get-object suivant montre comment utiliser l’interface AWS CLI pour télécharger un objet depuis Amazon S3. Cette commande récupère l’objet folder/my_image à partir du compartiment amzn-s3-demo-bucket1. Vous devez inclure un outfile, qui est le nom de fichier de l’objet téléchargé, par exemple my_downloaded_image.jpg.

aws s3api get-object --bucket amzn-s3-demo-bucket1 --key folder/my_image my_downloaded_image.jpg

Pour plus d’informations et des exemples, consultez get-object dans la Référence des commandes AWS CLI.

Pour obtenir des exemples de téléchargement d’un objet avec les kits AWS SDK, consultez les exemples de code dans la Référence des API Amazon S3.

Pour obtenir des informations générales sur l’utilisation des différents kits AWS SDK, consultez Développement avec Amazon S3 à l’aide des kits AWS SDK dans la Référence des API Amazon S3.

Vous pouvez utiliser l’API REST pour récupérer des objets depuis Amazon S3. Pour plus d’informations, veuillez consulter GetObject dans la Référence des API Amazon Simple Storage Service.

Téléchargement de plusieurs objets

Vous pouvez télécharger plusieurs objets en utilisant AWS CloudShell, l’interface AWS CLI ou les kits AWS SDK.

AWS CloudShell est un shell préauthentifié, basé sur un navigateur, que vous pouvez lancer directement à partir de AWS Management Console.

Pour plus d’informations sur AWS CloudShell, consultez Qu’est-ce que CloudShell ? dans le Guide de l’utilisateur AWS CloudShell.

Important

Avec AWS CloudShell, votre répertoire de base dispose d’un espace de stockage allant jusqu’à 1 Go par Région AWS. Par conséquent, vous ne pouvez pas synchroniser les compartiments avec des objets dont le total est supérieur à ce montant. Pour plus de restrictions, consultez Quotas et restrictions des services dans le Guide de l’utilisateur AWS CloudShell.

Pour télécharger des objets en utilisant AWS CloudShell
  1. Connectez-vous à la AWS Management Console et ouvrez la console CloudShell à l’adresse https://console.aws.amazon.com/cloudshell/.

  2. Exécutez la commande suivante pour synchroniser les objets de votre compartiment avec CloudShell. La commande suivante synchronise les objets depuis le compartiment nommé amzn-s3-demo-bucket1 et crée un dossier nommé temp dans CloudShell. CloudShell synchronise vos objets avec ce dossier. Pour utiliser cette commande, remplacez user input placeholders par vos propres informations.

    aws s3 sync s3://amzn-s3-demo-bucket1 ./temp
    Note

    La commande sync n’est pas compatible avec les compartiments de répertoires.

    Pour effectuer une correspondance de modèles afin d’exclure ou d’inclure des objets particuliers, vous pouvez utiliser les paramètres --exclude "value" et --include "value" avec la commande sync.

  3. Exécutez la commande suivante pour compresser vos objets dans le dossier nommé temp dans un fichier nommé temp.zip.

    zip temp.zip -r temp/
  4. Choisissez Actions, puis choisissez Télécharger un fichier.

  5. Entrez le nom de fichier temp.zip, puis choisissez Télécharger.

  6. (Facultatif) Supprimez le fichier temp.zip et les objets synchronisés avec le dossier temp dans CloudShell. Avec AWS CloudShell, vous disposez d’un stockage persistant allant jusqu’à 1 Go pour chaque Région AWS.

    Vous pouvez utiliser l’exemple de commande suivant pour supprimer votre fichier .zip et votre dossier. Pour utiliser cet exemple de commande, remplacez user input placeholders par vos propres informations.

    rm temp.zip && rm -rf temp/

L’exemple suivant montre comment utiliser l’interface AWS CLI pour télécharger tous les fichiers ou objets sous le répertoire ou le préfixe spécifié. Cette commande copie tous les objets du compartiment amzn-s3-demo-bucket1 vers votre répertoire actuel. Pour utiliser cet exemple de commande, utilisez le nom de votre compartiment à la place de amzn-s3-demo-bucket1.

aws s3 cp s3://amzn-s3-demo-bucket1 . --recursive

La commande suivante télécharge tous les objets situés sous le préfixe logs du compartiment amzn-s3-demo-bucket1 dans votre répertoire actuel. Elle utilise également les paramètres --exclude et --include pour copier uniquement les objets dotés du suffixe .log. Pour utiliser cet exemple de commande, remplacez user input placeholders par vos propres informations.

aws s3 cp s3://amzn-s3-demo-bucket1/logs/ . --recursive --exclude "*" --include "*.log"

Pour plus d’informations et des exemples, consultez cp dans la Référence des commandes AWS CLI.

Pour obtenir des exemples de téléchargement de tous les objets d’un compartiment Amazon S3 avec les kits AWS SDK, consultez les exemples de code dans la Référence des API Amazon S3.

Pour obtenir des informations générales sur l’utilisation des différents kits AWS SDK, consultez Développement avec Amazon S3 à l’aide des kits AWS SDK dans la Référence des API Amazon S3.

Téléchargement d’une partie d’un objet

Vous pouvez télécharger une partie d’un objet à l’aide de l’interface AWS CLI ou de l’API REST. Pour ce faire, vous devez utiliser des paramètres supplémentaires pour spécifier la partie d’un objet que vous souhaitez télécharger.

L’exemple de commande suivant exécute une demande GET pour obtenir une plage d’octets dans l’objet nommé folder/my_data dans le compartiment nommé amzn-s3-demo-bucket1. Dans cette demande, la plage d’octets doit être préfixée par bytes=. L’objet partiel est téléchargé dans le fichier de sortie nommé my_data_range. Pour utiliser cet exemple de commande, remplacez user input placeholders par vos propres informations.

aws s3api get-object --bucket amzn-s3-demo-bucket1 --key folder/my_data --range bytes=0-500 my_data_range

Pour plus d’informations et des exemples, consultez get-object dans la Référence des commandes AWS CLI.

Pour plus d’informations sur l’en-tête HTTP Range, consultez RFC 9110 sur le site web RFC Editor.

Note

Amazon S3 ne prend pas en charge la récupération de plusieurs plages de données dans une demande GET individuelle.

Vous pouvez utiliser les paramètres partNumber et Range de l’API REST pour récupérer des parties d’objet depuis Amazon S3. Pour plus d’informations, veuillez consulter GetObject dans la Référence des API Amazon Simple Storage Service.

Téléchargement d’un objet à partir d’un autre Compte AWS

Vous pouvez utiliser une URL présignée pour accorder aux autres un accès limité dans le temps à vos objets sans mettre à jour votre stratégie de compartiment.

L’URL présignée peut être saisie dans un navigateur ou utilisée par un programme pour télécharger un objet. Les informations d’identification utilisées par l’URL sont celles de l’utilisateur AWS qui a généré l’URL. Une fois l’URL créée, toute personne disposant de l’URL présignée peut télécharger l’objet correspondant jusqu’à ce que l’URL expire.

Vous pouvez utiliser la console Amazon S3 pour générer une URL présignée afin de partager un objet d’un compartiment à usage général en suivant ces étapes. Dans la console, le délai d’expiration maximal d’une URL présignée est de 12 heures à compter de la création.

Pour générer une URL présignée à l’aide de la console Amazon S3
  1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon S3 à l’adresse https://console.aws.amazon.com/s3/.

  2. Dans le volet de navigation de gauche, choisissez Compartiments à usage général.

  3. Dans la liste des compartiments, choisissez le nom du compartiment qui contient l’objet pour lequel vous souhaitez une URL présignée.

  4. Dans la liste Objects (Objets), sélectionnez l’objet pour lequel vous souhaitez créer une URL présignée.

  5. Dans le menu Actions d’objet, choisissez Partager avec une URL présignée.

  6. Spécifiez la durée de validité souhaitée pour l’URL présignée.

  7. Choisissez Create presigned URL (Créer une URL présignée).

  8. Lorsqu’un message de confirmation apparaît, l’URL est automatiquement copiée dans votre presse-papier. Un bouton s’affiche pour copier l’URL présignée, si vous devez la copier à nouveau.

  9. Pour télécharger l’objet, collez l’URL dans n’importe quel navigateur et l’objet tentera de se télécharger.

Pour plus d’informations sur les URL présignées et les autres méthodes permettant de les créer, consultez Téléchargement et chargement d’objets à l’aide d’URL présignées.

Téléchargement des objets archivés

Pour réduire vos coûts de stockage pour les objets rarement consultés, vous pouvez archiver ces objets. Lorsque vous archivez un objet, il est placé dans un espace de stockage à faible coût, ce qui signifie que vous ne pouvez pas y accéder en temps réel. Pour télécharger un objet archivé, vous devez d’abord le restaurer.

Vous pouvez restaurer les objets archivés en quelques minutes ou quelques heures, selon la classe de stockage. Vous pouvez restaurer un objet archivé à l’aide de la console Amazon S3, de S3 Batch Operations, de l’API REST Amazon S3, des kits AWS SDK et de l’AWS Command Line Interface (AWS CLI).

Pour obtenir des instructions, veuillez consulter Restauration d’un objet archivé. Après avoir restauré l’objet archivé, vous pouvez le télécharger.

Téléchargement d’objets en fonction des métadonnées

Vous pouvez ajouter des conditions préalables pour télécharger un objet en fonction de ses métadonnées à l’aide d’une demande de lecture conditionnelle. Vous pouvez renvoyer un objet en fonction de sa balise d’entité ou de sa date de dernière modification. Cela permet limiter une opération S3 aux objets mis à jour depuis une date spécifiée ou de ne renvoyer qu’une version d’objet spécifique.

Vous pouvez utiliser des écritures conditionnelles pour les demandes GetObject ou HeadObject.

Pour plus d’informations sur les demandes conditionnelles, consultez Ajout de conditions préalables aux opérations S3 avec des demandes conditionnelles.

Résolution des problèmes de téléchargement d’objets

Des autorisations insuffisantes ou des stratégies de compartiment ou d’utilisateur Gestion des identités et des accès AWS (IAM) incorrectes peuvent provoquer des erreurs lorsque vous essayez de télécharger des objets depuis Amazon S3. Ces problèmes peuvent souvent provoquer des erreurs d’accès refusé (403 Forbidden), quand Amazon S3 ne parvient pas à autoriser l’accès à une ressource.

Pour connaître les causes courantes des erreurs d’accès refusé (403 Forbidden), consultez Résolution des erreurs d’accès refusé (403 Forbidden) dans Amazon S3.

Si vous recevez une erreur 404 NoSuchKey lorsque vous tentez d’accéder à un objet, consultez Comment puis-je résoudre l’erreur 404 NoSuchKey provenant d’Amazon S3 ? dans le Centre de connaissances AWS re:Post.