

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Chargement d’objets
<a name="upload-objects"></a>

Lorsque vous chargez un fichier dans Amazon S3, il est stocké en tant qu’*objet* S3. Les objets se composent des données du fichier et des métadonnées décrivant l’objet. Vous pouvez disposer d’un nombre illimité d’objets dans un compartiment. Avant de pouvoir charger des fichiers dans un compartiment Amazon S3, vous devez disposer d’autorisations en écriture pour le compartiment. Pour plus d’informations sur les autorisations d’accès, consultez [Gestion des identités et des accès pour Amazon S3](security-iam.md). 

Vous pouvez charger n’importe quel type de fichier (images, sauvegardes, données, films, etc.) dans un compartiment S3. La console Amazon S3 vous permet de charger des fichiers d’une taille maximale de 160 Go. Pour charger un fichier de plus de 160 Go, utilisez l'API REST AWS Command Line Interface (AWS CLI) ou Amazon S3. AWS SDKs

Si vous chargez un objet avec un nom de clé qui existe déjà dans un compartiment pour lequel la gestion des versions est activée, Amazon S3 crée une autre version de l’objet au lieu de remplacer l’objet existant. Pour plus d’informations sur l’activation de la gestion des versions, consultez [Activation de la gestion des versions sur les compartiments](manage-versioning-examples.md).

 Selon la taille des données chargées, Amazon S3 propose les options suivantes : 
+ **Chargez un objet en une seule opération à l' AWS SDKsaide de l'API REST ou AWS CLI** : en une seule `PUT` opération, vous pouvez télécharger un seul objet d'une taille maximale de 5 Go.
+ **Charger un seul objet à l’aide de la console Amazon S3**** :** avec la console Amazon S3, vous pouvez charger un seul objet d’une taille maximale de 160 Go. 
+ **Chargez un objet en plusieurs parties à l'aide de l' AWS SDKsAPI REST ou AWS CLI** **:** à l'aide de l'opération d'API de téléchargement en plusieurs parties, vous pouvez télécharger un seul objet de grande taille, d'une taille maximale de 50 To.

  L’opération d’API de chargement partitionné est conçue pour améliorer l’expérience de chargement pour les objets plus volumineux. Vous pouvez charger un objet en plusieurs parties. Ces parties d’objet peuvent être chargées indépendamment, dans n’importe quel ordre, et en parallèle. Vous pouvez utiliser le téléchargement partitionné pour les objets d'une taille comprise entre 5 Mo et 50 To. Pour de plus amples informations, veuillez consulter [Chargement et copie d’objets à l’aide du chargement partitionné dans Amazon S3](mpuoverview.md).

Pour télécharger des fichiers de plus de 5 To, utilisez le gestionnaire de transfert S3 dans Java v1/v2, Python ou. AWS CLI SDKs Pour des performances optimales, utilisez la dernière version du AWS Common Runtime (CRT) SDKs, qui a été optimisée pour une meilleure utilisation des ressources.

Lors du téléchargement d'objets volumineux à partir d'un flux de mémoire, le CRT met en mémoire tampon chaque partie jusqu'à 5 Go, limitant ainsi le débit global en fonction de la mémoire allouée. Vous pouvez ajuster la limite de mémoire CRT à l'aide d'options de configuration telles que `maxNativeMemoryLimitInBytes` pour le SDK Java. Pour les téléchargements depuis un disque, le CRT passe automatiquement au streaming direct sur disque au lieu de la mise en mémoire tampon des parties intermédiaires, ce qui améliore l'utilisation de la mémoire. Ce comportement est automatiquement activé pour les objets volumineux, mais peut également être activé pour les petits fichiers via des paramètres de demande tels que `should_stream` pour AWS CLI et `CRT_MEMORY_BUFFER_DISABLED` pour le SDK Java.

Lorsque vous chargez un objet, il est automatiquement chiffré à l’aide du chiffrement côté serveur avec des clés gérées par Amazon S3 (SSE-S3) par défaut. Lorsque vous le téléchargez, l’objet est déchiffré. Pour plus d’informations, consultez [Définition du comportement de chiffrement côté serveur par défaut pour les compartiments Amazon S3](bucket-encryption.md) et [Protection des données à l’aide du chiffrement](UsingEncryption.md). 

Lorsque vous chargez un objet, si vous souhaitez utiliser un autre type de chiffrement par défaut, vous pouvez également spécifier un chiffrement côté serveur avec des clés AWS Key Management Service (AWS KMS) (SSE-KMS) dans vos `PUT` requêtes S3 ou définir la configuration de chiffrement par défaut dans le compartiment de destination afin d'utiliser SSE-KMS pour chiffrer vos données. Pour en savoir plus sur SSE-KMS, consultez [Spécification du chiffrement côté serveur avec AWS KMS (SSE-KMS)](specifying-kms-encryption.md). Si vous souhaitez utiliser une clé KMS qui appartient à un autre compte, vous devez avoir l’autorisation d’utiliser la clé. Pour plus d’informations sur les autorisations intercomptes pour les clés KMS, consultez [Création de clés KMS que d’autres comptes peuvent utiliser](https://docs.aws.amazon.com//kms/latest/developerguide/key-policy-modifying-external-accounts.html#cross-account-console) dans le *Guide du développeur AWS Key Management Service *. 

Si vous rencontrez une erreur (403 Forbidden) liée à un refus d’accès dans Amazon S3, consultez [Résolution des erreurs d’accès refusé (403 Forbidden) dans Amazon S3](troubleshoot-403-errors.md) pour en savoir plus sur ses causes courantes.

## Charger un objet
<a name="upload-objects-procedure"></a>

### Utilisation de la console S3
<a name="upload-objects-by-drag-and-drop"></a>

Cette procédure explique la façon de charger un des objets et des dossiers dans un compartiment Amazon S3 à l’aide de la console. 

Lorsque vous chargez un objet, le nom de clé d’objet est le nom du fichier et les préfixes facultatifs. Dans la console Amazon S3, vous pouvez créer des dossiers pour organiser vos objets. Dans Amazon S3, les dossiers sont représentés sous la forme de préfixes qui apparaissent dans le nom de la clé d’objet. Si vous téléchargez un objet individuel dans un dossier de la console Amazon S3, le nom du dossier est inclus dans le nom de la clé de l’objet. 

Par exemple, si vous chargez un objet nommé `sample1.jpg` dans un dossier nommé `backup`, le nom de la clé sera `backup/sample1.jpg`. Cependant, l’objet s’affiche dans la console en tant que `sample1.jpg` dans le dossier `backup`. Pour en savoir plus sur les noms de clé, consultez [Utilisation des métadonnées d’objet](UsingMetadata.md).

**Note**  
Si vous renommez un objet ou modifiez l’une de ses propriétés dans la console Amazon S3, par exemple **Classe de stockage**, **Chiffrement** ou **Métadonnées**, un nouvel objet est créé pour remplacer l’ancien. Si la gestion des versions S3 est activée, une nouvelle version de l’objet est créée et l’objet existant devient une version plus ancienne. Le rôle qui modifie la propriété devient également le propriétaire du nouvel objet ou (version de l’objet).

Lorsque vous chargez un dossier, Amazon S3 charge tous les fichiers et sous-dossiers du dossier spécifié dans le compartiment. Ensuite, il attribue un nom de clé d’objet qui combine le nom du fichier chargé et le nom du dossier. Par exemple, si vous chargez un dossier nommé `/images` qui contient deux fichiers, `sample1.jpg` et `sample2.jpg`, Amazon S3 charge les fichiers, puis attribue les noms de clé correspondants, `images/sample1.jpg` et `images/sample2.jpg`. Les noms de clé incluent le nom de dossier comme préfixe. La console Amazon S3 affiche uniquement la partie du nom de clé qui suit le dernier signe `/`. Par exemple, dans un dossier `images`, les objets `images/sample1.jpg` et `images/sample2.jpg` s’affichent sous les formes `sample1.jpg` et `sample2.jpg`.<a name="upload-files-folders"></a>

**Pour charger des dossiers et des fichiers dans un compartiment S3**

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

1. Dans le panneau de navigation de gauche, choisissez **Compartiments**.

1. Dans la liste **Compartiments**, choisissez le nom du compartiment dans lequel vous souhaitez charger vos dossiers ou fichiers.

1. Choisissez **Charger**.

1. Dans la fenêtre **Charger**, procédez de l’une des manières suivantes : 
   + Faites glisser et déposez les fichiers et les dossiers dans la fenêtre **Upload** (Charge).
   + Choisissez **Ajouter un fichier** ou **Ajouter un dossier**, puis choisissez les fichiers ou les dossiers à charger et **Ouvrir**.

1. Pour activer la gestion des versions, sous **Destination**, choisissez **Enable Bucket Versioning** (Activer la gestion des versions de compartiment).

1. Pour charger les fichiers et les dossiers répertoriés sans configurer des options de chargement supplémentaires, choisissez **Charger**.

   Amazon S3 charge les objets et les dossiers. Lorsque le chargement est terminé, un message de réussite s’affiche sur la page **Charger : statut**.<a name="configure-additional-properties"></a>

**Pour configurer des propriétés d’objet supplémentaires**

1. Pour modifier les autorisations de la liste de contrôle d’accès, choisissez **Permissions** (Autorisations).

1. Sous **Access control list (ACL)** (Liste de contrôle d’accès (ACL)), modifiez les autorisations.

   Pour plus d’informations sur les autorisations d’accès aux objets, consultez [Utilisation de la console S3 pour définir des autorisations ACL pour un objet](managing-acls.md#set-object-permissions). Vous pouvez octroyer l’accès en lecture à vos objets au public (tout le monde) pour tous les fichiers que vous chargez. Cependant, nous recommandons de ne pas modifier le paramètre par défaut de l’accès public en lecture. L’octroi de l’accès en lecture public est applicable à un petit sous-ensemble de cas d’utilisation, comme lorsque des compartiments sont utilisés pour des sites web. Vous pouvez toujours modifier les autorisations de l’objet après l’avoir chargé. 

1. Pour configurer d’autres propriétés supplémentaires, sélectionnez **Properties** (Propriétés).

1. Dans **Classe de stockage**, choisissez la classe de stockage des fichiers à charger.

   Pour plus d'informations sur les classes de stockage, consultez [Bien comprendre et gérer les classes de stockage Amazon S3](storage-class-intro.md).

1. Pour mettre à jour les paramètres de chiffrement de vos objets, sous **Server-side encryption settings** (Paramètres de chiffrement côté serveur), procédez comme suit.

   1. Choisissez **Specify an encryption key** (Spécifier une clé de chiffrement).

   1. Sous **Paramètres de chiffrement**, choisissez **Utiliser les paramètres du compartiment pour le chiffrement par défaut** ou **Ignorer les paramètres du compartiment pour le chiffrement par défaut**.

   1. Si vous avez choisi **Ignorer les paramètres du compartiment pour le chiffrement par défaut**, vous devez configurer les paramètres de chiffrement suivants.
      + Pour chiffrer les fichiers chargés à l’aide des clés gérées par Amazon S3, choisissez **Clé gérée par Amazon S3 (SSE-S3)**.

        Pour de plus amples informations, veuillez consulter [Utilisation du chiffrement côté serveur avec des clés gérées par Amazon S3 (SSE-S3)](UsingServerSideEncryption.md).
      + Pour chiffrer les fichiers téléchargés à l'aide des clés stockées dans AWS Key Management Service (AWS KMS), choisissez **AWS Key Management Service key (SSE-KMS**). Choisissez ensuite l’une des options suivantes pour **CléAWS KMS **: 
        + Pour choisir parmi une liste de clés KMS disponibles, choisissez **Choisir parmi vos AWS KMS keys**, puis sélectionnez votre **Clé KMS** dans la liste des clés disponibles.

          La clé Clé gérée par AWS (`aws/s3`) et la clé gérée par votre client apparaissent toutes deux dans cette liste. Pour plus d’informations sur les clés gérées par le client, consultez [Clés de client et clés AWS](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#key-mgmt) dans le *Guide du développeur AWS Key Management Service *.
        + Pour saisir l'ARN de la clé KMS, choisissez **Enter AWS KMS key ARN**, puis entrez l'ARN de votre clé KMS dans le champ qui apparaît. 
        + Pour créer une nouvelle clé gérée par le client dans la AWS KMS console, choisissez **Create a KMS key**.

          Pour plus d'informations sur la création d'un AWS KMS key, consultez la section [Création de clés](https://docs.aws.amazon.com//kms/latest/developerguide/create-keys.html) dans le *Guide du AWS Key Management Service développeur*.
**Important**  
Vous ne pouvez utiliser que les clés KMS disponibles dans le même compartiment Région AWS que le bucket. La console Amazon S3 répertorie uniquement les 100 premières clés KMS dans la même région que le compartiment. Pour utiliser une clé KMS qui n’est pas répertoriée, vous devez saisir l’ARN de votre clé KMS. Si vous souhaitez utiliser une clé KMS qui appartient à un autre compte, vous devez d'abord avoir l'autorisation d'utiliser cette clé KMS, puis saisir l'ARN de la clé KMS.   
Amazon S3 prend uniquement en charge les clés KMS symétriques de chiffrement et ne prend pas en charge les clés KMS asymétriques. Pour plus d'informations, consultez la section [Identifying symmetric and asymmetric KMS keys](https://docs.aws.amazon.com//kms/latest/developerguide/find-symm-asymm.html) (Identification des clés KMS symétriques et asymétriques) dans le *Guide du développeur AWS Key Management Service *.

1. Pour utiliser des sommes de contrôle supplémentaires, sélectionnez **Activé**. Ensuite, pour le champ **Checksum function** (Fonction total de contrôle), sélectionnez la fonction que vous souhaitez utiliser. Amazon S3 calcule et stocke la valeur du total de contrôle après avoir reçu l’objet entier. Vous pouvez utiliser la case **Precalculated value** (Valeur précalculée) pour fournir une valeur précalculée. Si vous le faites, Amazon S3 compare la valeur que vous avez fournie à la valeur qu’il calcule. Si les deux valeurs ne correspondent pas, Amazon S3 génère une erreur.

   Les totaux de contrôle supplémentaires vous permettent de spécifier l’algorithme de total de contrôle que vous souhaitez utiliser pour vérifier vos données. Pour plus d’informations sur les totaux de contrôle supplémentaires, consultez [Vérification de l’intégrité des objets dans Amazon S3](checking-object-integrity.md).

1. Pour ajouter des balises à tous les objets que vous chargez, choisissez **Add tag (Ajouter une balise)**. Saisissez un nom de balise dans le champ **Clé**. Saisissez une valeur pour la balise.

   Le balisage des objets vous permet de classer le stockage par catégorie. Chaque balise est une paire clés-valeurs. Les valeurs de clés et de balises sont sensibles à la casse. Vous pouvez avoir jusqu’à 10 balises par objet. Une clé de balise peut comporter jusqu’à 128 caractères Unicode et les valeurs de balise peuvent comporter jusqu’à 255 caractères Unicode. Pour en savoir plus sur les balises d’objet, consultez [Catégorisation de vos objets à l’aide de balises](object-tagging.md).

1. Pour ajouter des métadonnées, choisissez **Add metadata** (Ajouter des métadonnées).

   1. Sous **Type**, choisissez **System defined** (Défini par le système) ou **User defined** (Défini par l’utilisateur).

      Pour les métadonnées définies par le système, vous pouvez sélectionner des en-têtes HTTP courants, tels que **Content-Type** et **Content-Disposition**. Pour obtenir la liste des métadonnées définies par le système et savoir si vous pouvez ajouter la valeur, consultez [Métadonnées d’objet définies par le système](UsingMetadata.md#SysMetadata). Toute métadonnée commençant par le préfixe `x-amz-meta-` est traitée comme une métadonnée définie par l’utilisateur. Les métadonnées définies par l’utilisateur sont stockées avec l’objet et renvoyées une fois que vous avez téléchargé l’objet. Les clés et leurs valeurs doivent respecter les normes US-ASCII. Les métadonnées définies par l’utilisateur peuvent atteindre 2 Ko. Pour plus d’informations sur les métadonnées définies par le système et par l’utilisateur, consultez [Utilisation des métadonnées d’objet](UsingMetadata.md).

   1. Pour **Key** (Clé), choisissez une clé.

   1. Saisissez une valeur pour la clé. 

1. Pour charger vos objets, choisissez **Charger**.

   Amazon S3 charge votre objet. Lorsque le chargement est terminé, un message de succès s’affiche sur la page **Load: status** (Charger : statut).

1. Choisissez **Exit (Quitter)**.

### À l'aide du AWS CLI
<a name="UploadObjSingleOpCLI"></a>

Vous pouvez envoyer une demande `PUT` pour télécharger un objet d’une taille maximale de 5 Go en une seule opération. Pour plus d’informations, consultez l’exemple [https://docs.aws.amazon.com/cli/latest/reference/s3api/put-object.html#examples](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-object.html#examples) dans la *Référence des commandes de l’AWS CLI *.

### Utilisation de l'API REST
<a name="UploadObjSingleOpREST"></a>

Vous pouvez envoyer des demandes REST pour charger un objet. Vous pouvez envoyer une demande `PUT` pour charger des données en une seule opération. Pour plus d’informations, consultez [Objet PUT](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html).

### En utilisant le AWS SDKs
<a name="UploadInSingleOp"></a>

Pour des exemples de téléchargement d'un objet avec le AWS SDKs, consultez les [exemples de code](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_PutObject_section.html) dans le manuel *Amazon Simple Storage Service API Reference*.

Pour obtenir des informations générales sur l'utilisation de différents éléments AWS SDKs, consultez la section [Développement avec Amazon S3 AWS SDKs à l'aide](https://docs.aws.amazon.com/AmazonS3/latest/API/sdk-general-information-section.html) du *manuel Amazon Simple Storage Service API Reference*.

## Empêcher le chargement d’objets portant des noms de clé identiques
<a name="upload-objects-with-same-key-name"></a>

Vous pouvez vérifier l’existence d’un objet dans un compartiment avant de le créer à l’aide d’une écriture conditionnelle lors des opérations de chargement. Cela permet d’éviter l’écrasement de données existantes. Les écritures conditionnelles valident qu’aucun objet portant le même nom de clé ne se trouve déjà dans votre compartiment lors du chargement.

Vous pouvez utiliser des écritures conditionnelles pour les demandes [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) ou [CompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html).

Pour plus d’informations sur les demandes conditionnelles, consultez [Ajout de conditions préalables aux opérations S3 avec des demandes conditionnelles](conditional-requests.md).