Déposer un objet dans un bucket

Vous pouvez déposer un objet local sur un bucket pour créer un backup dans le Cloud ou stocker celui-ci, et le partager avec d’autres utilisateurs.

Puisque la capacité de stockage est limitée par la plateforme de stockage elle-même, les objets ne sont pas limités en taille. Vous pouvez déposer un objet de 1 octet et 5 Gio en une seule commande. Cependant, il est recommandé de déposer les objets de 100 Mio ou plus en plusieurs parties afin de les déposer plus vite. Pour en savoir plus, voir Créer un dépôt partitionné.

Vous pouvez déposer des objets dans vos buckets ou dans le bucket qu’un autre utilisateur a partagé avec vous. Les autres utilisateurs peuvent également déposer des objets dans votre bucket si vous leur avez accordé les permissions appropriées. Pour en savoir plus, voir Référence des Access Control List (ACL).

Nous recommandons de ne pas dépasser 300 dépôts par seconde dans un même bucket.

Vous ne pouvez pas changer la clé d’un objet une fois celui-ci déposé dans un bucket. Si vous déposez un objet qui a la même clé qu’un autre objet déjà contenu dans le bucket, l’objet que vous déposez remplace l’ancien objet. Si le bucket versioning est activé, l’ancien objet est conservé comme version précédente. Pour en savoir plus, voir Activer ou désactiver le versioning d’un bucket.

Par défaut, les objets que vous déposez sont privés. Cependant, vous pouvez partager les objets que vous avez déposés dans votre bucket avec d’autres utilisateurs en utilisant une Access Control List (ACL). Pour en savoir plus, voir Référence des Access Control List (ACL).

Cette action renvoie également un ETag. Cet élément est nécessaire pour créer un dépôt partitionné. Pour en savoir plus, voir Créer un dépôt partitionné.

Assurez-vous de ne pas accorder les permissions de public read pour vos données sensibles.

Déposer un objet dans un bucket avec AWS CLI (s3api)

Avant de commencer : Installez et configurez AWS CLI et définissez votre profil. Pour en savoir plus, voir Installer et configurer AWS CLI.

Pour déposer un objet local dans un bucket, utilisez la commande put-object en suivant cette syntaxe :

Exemple de requête
$ aws s3api put-object \
    --profile YOUR_PROFILE \
    --bucket BUCKET \
    --key OBJECT \
    --body usr/bin/YOUR_OBJECT \
    --acl private \
    --grant-full-control "id=USER_ID, id=USER_ID" \
    --grant-read "id=USER_ID, id=USER_ID" \
    --grant-read-acp "id=USER_ID, id=USER_ID" \
    --grant-write-acp "id=USER_ID, id=USER_ID" \
    --cache-control "no-cache" \
    --content-disposition "inline" \
    --content-encoding "gzip" \
    --content-language "en" \
    --content-type image/png \
    --content-length 42 \
    --expires "2024-03-01T00:00:00Z" \
    --metadata "{\"key1\": \"value1\", \"key2\": \"value2\"}" \
    --metadata-directive "COPY" \
    --website-redirect "/new-page.html" \
    --endpoint https://oos.eu-west-2.outscale.com

Cette commande contient les attributs suivants que vous devez spécifier :

  • (optionnel) profile : Le profil nommé que vous voulez utiliser, créé pendant la configuration d’AWS CLI. Pour en savoir plus, voir Installer et configurer AWS CLI.

  • bucket : Le bucket dans lequel vous voulez déposer l’objet.

  • key : Le nom que vous voulez donner à l’objet dans le bucket.

    Vous pouvez utilisez le même préfixe dans les clés de plusieurs objets, au format suivant : prefix/key1, prefix/key2, et ainsi de suite.

    Cette action crée une architecture virtuelle dans votre bucket qui vous permet de retrouver vos objets plus vite lorsque vous les listez. Pour en savoir plus, voir Lister les objets d’un bucket.

  • body : Le chemin d’accès vers l’objet sur votre machine.

    • Lorsque vous spécifiez une nouvelle permission, celle-ci remplace toutes les anciennes. Par conséquent, vous devez spécifiez toutes les permissions dans une seule commande.

    • Lorsque vous spécifiez des permissions, vous devez également spécifier votre adresse e-mail. Sinon, vous perdez les permissions pour votre ressource.

    • Si vous êtes le propriétaire du bucket, la seule permission que vous ne pouvez jamais perdre est la gestion de l’ACL.

    Pour en savoir plus à propos des permissions existantes, voir Obtenir des informations sur l’ACL d’un bucket et Obtenir des informations sur l’ACL d’un objet.

  • (optionnel) acl : Les permissions que vous accordez pour votre objet (private | public-read | public-read-write | authenticated-read | bucket-owner-read | bucket-owner-full-control).

  • (optionnel) grant-full-control : Un ou plusieurs ID d’utilisateurs auxquels vous accordez la permission full-control.

  • (optionnel) grant-read : Un ou plusieurs ID d’utilisateurs auxquels vous accordez la permission read.

  • (optionnel) grant-read-acp : Un ou plusieurs ID d’utilisateurs auxquels vous accordez la permission read-acp.

  • (optionnel) grant-write-acp : Un ou plusieurs ID d’utilisateurs auxquels vous accordez la permission write-acp.

    • Vous devez spécifier des ID utilisateur S3. Vous pouvez récupérer les ID utilisateur S3 via les méthodes Lister vos buckets et Lister les objets d’un bucket.

    • Vous pouvez également spécifier des adresses e-mail utilisateur en utilisant le format emailaddress=name@domain.com.

  • (optionnel) cache-control : Comment vous souhaitez que l’objet soit traité en termes de mise en cache (max-age | max-stale | min-fresh | no-cache | no-store | no-transform | only-if-cached | stale-if-error).

  • (optionnel) content-disposition : Comment vous souhaitez que l’objet soit affiché lorsque vous y accédez par le biais d’un navigateur ("inline" | "attachment" | "attachment; filename="<NOM_DU_FICHIER>"")

    • inline : Si possible, demande au navigateur d’afficher le contenu à l’intérieur de la fenêtre du navigateur. Cet attribut est utile pour les images, les PDF et autres types de médias que les navigateurs peuvent facilement interpréter.

    • attachment : Quel que soit le type de fichier, demande au navigateur de télécharger le contenu au lieu de l’afficher en ligne. Le fichier est ainsi enregistré localement.

    • "attachment; filename="<NOM_DU_FICHIER>"" : Quel que soit le type de fichier, demande au navigateur de télécharger le contenu au lieu de l’afficher en ligne. Le fichier est ainsi enregistré localement sous le nom de fichier spécifié.

  • (optionnel) content-encoding : Le format d’encodage de l’objet (gzip | compress | deflate | identity | br).

  • (optionnel) content-language : La langue dans laquelle le contenu de l’objet est rédigé, en code de langue (format ISO 639).

  • (optionnel) content-type : Le type MIME (Multipurpose Internet Mail Extensions) de l’objet.

    Un attribut content-type mal défini ou absent peut entraîner une mauvaise interprétation ou un mauvais traitement des objets par les navigateurs. En conséquence, vous pouvez rencontrer des difficultés pour accéder à vos objets ou les visualiser à l’aide de votre navigateur préféré.

  • (optionnel) content-length : Si la taille ne peut pas être définie automatiquement, la taille de l’objet en octets.

  • (optionnel) expires : La date et l’heure, en format UTC, à laquelle vous considérez que l’objet ne peut plus être mis en cache et est considéré comme périmé.

  • (optionnel) metadata : Une carte des entrées de metadata supplémentaires que vous pouvez indiquer librement.

    • key : Le nom de la metadata.

    • value : La valeur de la metadata.

  • (optionnel) metadata-directive : Permet de déterminer si les metadata doivent être copiées à partir des objets sources ou remplacées par les métadonnées fournies dans la requête (COPY ou REPLACE).

  • (optionnel) website-redirect : Si vous avez configuré le bucket de destination comme un site web, redirige les requêtes pour cet objet vers un autre objet dans le même bucket ou vers une URL externe.

  • endpoint : Le endpoint correspondant à la Région à laquelle vous voulez envoyer la requête.

  • endpoint : Le endpoint correspondant à la Région à laquelle vous voulez envoyer la requête.

La commande put-object renvoie l’élément suivant :

  • Expiration : Si une règle de cycle de vie a été appliquée à l’objet, renvoie les détails sur sa configuration. Pour en savoir plus, voir Gérer le cycle de vie de vos buckets.

    • expiry-date : Date et heure d’expiration de l’objet.

    • rule-id : Le nom donné à la règle de cycle de vie.

  • ETag : L’ETag de votre objet dont vous avez besoin pour utiliser les commandes multipart upload. Pour en savoir plus, voir Créer un dépôt partitionné.

  • VersionId : Si le bucket versioning a été activé, l’ID de la version de l’objet.

Exemple de résultat
{
    "Expiration": "expiry-date=\"Fri, 12 Jan 2024 09:30:08 GMT\", rule-id=\"id\"",
    "ETag": "\"fae0000b0d0000fababdd00e0a000000\"",
    "VersionId": "aJfWzV80O5rN00001000001I4j3QKItW"
}

L’objet est déposé sur le bucket.

Déposer un objet dans un bucket avec AWS CLI (s3)

Pour déposer un objet local dans un bucket, utilisez la commande cp en suivant cette syntaxe :

Exemple de requête
$ aws s3 cp LOCAL_PATH/OBJECT_TO_UPLOAD s3://BUCKET/ \
   --profile YOUR_PROFILE \
   --debug \
   --dryrun \
   --acl private \
   --grant-full-control "id=USER_ID, id=USER_ID" \
   --grant-read "id=USER_ID, id=USER_ID" \
   --grant-read-acp "id=USER_ID, id=USER_ID" \
   --grant-write "id=USER_ID, id=USER_ID" \
   --cache-control "no-cache" \
   --content-disposition "inline" \
   --content-encoding "gzip" \
   --content-language "en" \
   --content-type image/png \
   --expires "2024-03-01T00:00:00Z" \
   --metadata "{\"key1\": \"value1\", \"key2\": \"value2"}\" \
   --copy-props none \
   --expected-size 1234 \
   --website-redirect "/new-page.html" \
   --endpoint https://oos.eu-west-2.outscale.com

Cette commande contient les attributs suivants que vous devez spécifier :

  • s3://BUCKET/OBJECT_TO_UPLOAD : Le chemin d’accès vers l’objet que vous voulez déposer dans le bucket.

  • (optionnel) profile : Le profil nommé que vous voulez utiliser, créé pendant la configuration d’AWS CLI. Pour en savoir plus, voir Installer et configurer AWS CLI.

  • (optionnel) debug : Si inclus, renvoie un rapport détaillé de l’opération. Cet attribut est utile pour analyser et résoudre les problèmes que vous pouvez rencontrer.

  • (optionnel) dryrun : Fournit une vue d’ensemble des opérations effectuées par la commande sans pour autant l’exécuter. Vous pouvez l’utiliser comme mesure de sécurité pour examiner l’impact d’une commande avant de l’exécuter.

  • (optionnel) acl : Les permissions pour la copie de l’objet (private | public-read | public-read-write | authenticated-read | bucket-owner-read | bucket-owner-full-control).

  • (optionnel) grant-full-control : Un ou plusieurs ID d’utilisateurs auxquels vous accordez la permission full-control.

  • (optionnel) grant-read : Un ou plusieurs ID d’utilisateurs auxquels vous accordez la permission read.

  • (optionnel) grant-read-acp : Un ou plusieurs ID d’utilisateurs auxquels vous accordez la permission read-acp.

  • (optionnel) grant-write : Un ou plusieurs ID d’utilisateurs auxquels vous accordez la permission write.

  • (optionnel) grant-write-acp : Un ou plusieurs ID d’utilisateurs auxquels vous accordez la permission write-acp.

  • (optionnel) cache-control : Comment vous souhaitez que l’objet soit traité en termes de mise en cache (max-age | max-stale | min-fresh | no-cache | no-store | no-transform | only-if-cached | stale-if-error).

  • (optionnel) content-disposition : Comment vous souhaitez que l’objet soit affiché lorsque vous y accédez par le biais d’un navigateur ("inline" | "attachment" | "attachment; filename="<NOM_DU_FICHIER>"")

    • inline : Si possible, demande au navigateur d’afficher le contenu à l’intérieur de la fenêtre du navigateur. Cet attribut est utile pour les images, les PDF et autres types de médias que les navigateurs peuvent facilement interpréter.

    • attachment : Quel que soit le type de fichier, demande au navigateur de télécharger le contenu au lieu de l’afficher en ligne. Le fichier est ainsi enregistré localement.

    • "attachment; filename="<NOM_DU_FICHIER>"" : Quel que soit le type de fichier, demande au navigateur de télécharger le contenu au lieu de l’afficher en ligne. Le fichier est ainsi enregistré localement sous le nom de fichier spécifié.

  • (optionnel) content-encoding : Le format d’encodage de l’objet (gzip | compress | deflate | identity | br).

  • (optionnel) content-language : La langue dans laquelle le contenu de l’objet est rédigé, en code de langue (format ISO 639).

  • (optionnel) content-type : Le type MIME (Multipurpose Internet Mail Extensions) de l’objet.

    Un attribut content-type mal défini ou absent peut entraîner une mauvaise interprétation ou un mauvais traitement des objets par les navigateurs. En conséquence, vous pouvez rencontrer des difficultés pour accéder à vos objets ou les visualiser à l’aide de votre navigateur préféré.

  • (optionnel) metadata : Une carte des entrées de metadata supplémentaires que vous pouvez indiquer librement.

    • key : Le nom de la metadata.

    • value : La valeur de la metadata.

  • (optionnel) expected-size : Si l’objet est supérieur à 50 Go, spécifie la taille attendue du téléchargement, en octets. Cet attribut est utile si vous souhaitez confirmer l’intégrité ou la taille attendue du fichier téléchargé. Pour en savoir plus, voir Tutoriel : Utiliser un dépôt partitionné avec AWS CLI (s3).

  • (optionnel) website-redirect : Si vous avez configuré le bucket comme un site web, redirige les demandes pour cet objet vers un autre objet dans le même bucket ou vers une URL externe.

  • endpoint : Le endpoint correspondant à la Région à laquelle vous voulez envoyer la requête.

Votre objet est déposé dans le bucket.

Déposer un objet dans un bucket avec s3cmd

Vous pouvez gérer vos ressources de stockage objet en utilisant des commandes s3cmd. Pour en savoir plus, voir s3cmd.

Pages connexes

AWS™ et Amazon Web Services™ sont des marques de commerce d’Amazon Technologies, Inc. ou de ses affiliées aux États-Unis et/ou dans les autres pays.