

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.

# Partage d’objets à l’aide d’URL présignées
<a name="ShareObjectPreSignedURL"></a>

Par défaut, tous les objets Amazon S3 sont privés, seul le propriétaire de l’objet a l’autorisation d’y accéder. Toutefois, le propriétaire de l’objet peut partager des objets avec d’autres personnes en créant une URL présignée. Une URL présignée utilise des informations d’identification de sécurité pour accorder une autorisation limitée dans le temps pour télécharger des objets. L’URL peut être saisie dans un navigateur ou utilisée par un programme pour télécharger l’objet. Les informations d'identification utilisées par l'URL présignée sont celles de l' AWS utilisateur qui a généré l'URL.

Pour des informations générales sur les URL présignées, consultez [Téléchargement et chargement d’objets à l’aide d’URL présignées](using-presigned-url.md).

Vous pouvez créer une URL présignée pour partager un objet sans écrire de code à l'aide de la console Amazon S3, de l' AWS Explorateur pour Visual Studio (Windows) ou AWS Toolkit for Visual Studio Code. Vous pouvez également générer une URL présignée par programmation en utilisant le AWS Command Line Interface (AWS CLI) ou les SDK. AWS 

## Utilisation de la console S3
<a name="generating-presigned-url"></a>

 Vous pouvez utiliser la console Amazon S3 pour générer une URL présignée afin de partager un objet d'une capacité maximale de 5 To 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 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 volet de navigation de gauche, choisissez **Compartiments à usage général**.

1. Dans la liste **Compartiments à usage général**, choisissez le nom du compartiment qui contient l’objet pour lequel vous souhaitez une URL présignée.

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

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

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

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

1. Lorsqu’une 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.

## Utilisation de AWS CLI
<a name="ShareObjectPresignedCLI"></a>

L'exemple de AWS CLI commande suivant génère une URL présignée pour partager un objet depuis un compartiment Amazon S3. Lorsque vous utilisez le AWS CLI, le délai d'expiration maximal d'une URL présignée est de 7 jours à compter de sa création. Pour utiliser cet exemple, remplacez les {{`user input placeholders`}} par vos propres informations.

```
aws s3 presign s3://{{amzn-s3-demo-bucket}}/{{mydoc.txt}} --expires-in {{604800}}
```

Le paramètre `--expires-in` indique le délai d’expiration en secondes.



**Note**  
Pour tous Régions AWS ceux lancés après le 20 mars 2019, vous devez spécifier le `endpoint-url` et `Région AWS` avec la demande. Pour voir la liste complète des régions et points de terminaison Amazon S3, consultez [Régions et points de terminaison](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) dans la *Référence générale AWS *.

```
aws s3 presign s3://{{amzn-s3-demo-bucket}}/{{mydoc.txt}} --expires-in {{604800}} --region {{af-south-1}} --endpoint-url {{https://s3.af-south-1.amazonaws.com}}
```



Pour plus d’informations, consultez [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/presign.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/presign.html) dans la *Référence des commandes de l’AWS CLI *.

## Utilisation de AWS Kits SDK
<a name="ShareObjectPreSignedURLSDK"></a>

Vous pouvez générer une URL présignée par programmation à l'aide des SDK. AWS 

------
#### [ Python ]

 Le script Python suivant génère une URL `GET` présignée pour le partage d’un objet.

1. Copiez le contenu du script et enregistrez-le sous forme de fichier « {{get-only-url.py}} ». Pour utiliser les exemples suivants, remplacez le {{user input placeholders}} par vos propres informations (telles que le nom de votre fichier). 

   ```
   import argparse
   import boto3
   from botocore.exceptions import ClientError
   
   def generate_presigned_url(s3_client, client_method, method_parameters, expires_in):
       """
       Generate a presigned Amazon S3 URL that can be used to perform an action.
       
       :param s3_client: A Boto3 Amazon S3 client.
       :param client_method: The name of the client method that the URL performs.
       :param method_parameters: The parameters of the specified client method.
       :param expires_in: The number of seconds the presigned URL is valid for.
       :return: The presigned URL.
       """
       try:
           url = s3_client.generate_presigned_url(
               ClientMethod=client_method,
               Params=method_parameters,
               ExpiresIn=expires_in
           )
       except ClientError:
           print(f"Couldn't get a presigned URL for client method '{client_method}'.")
           raise
       return url
   
   def main():
       parser = argparse.ArgumentParser()
       parser.add_argument("bucket", help="The name of the bucket.")
       parser.add_argument(
           "key", help="The key (path and filename) in the S3 bucket.",
       )
       args = parser.parse_args()
       
       # By default, this will use credentials from ~/.aws/credentials
       s3_client = boto3.client("s3")
       
       # The presigned URL is specified to expire in 1000 seconds
       url = generate_presigned_url(
           s3_client, 
           "get_object", 
           {"Bucket": args.bucket, "Key": args.key}, 
           1000
       )
       print(f"Generated GET presigned URL: {url}")
   
   if __name__ == "__main__":
       main()
   ```

1. Pour générer une URL `GET` présignée pour le partage d’un fichier, exécutez le script suivant avec le nom de votre compartiment et le chemin d’objet souhaité. 

    La commande suivante utilise des valeurs d’exemple. Remplacez les {{user input placeholders}} par vos propres informations.

   ```
   python {{get-only-url.py}} {{{{amzn-s3-demo-bucket}}}} {{<object-path>}}
   ```

   Le script affiche une URL `GET` présignée :

   ```
   Generated GET presigned URL: https://{{amzn-s3-demo-bucket}}.s3.amazonaws.com/{{object.txt}}?AWS AccessKeyId={{AKIAIOSFODNN7EXAMPLE}}&Signature={{vjbyNxybdZaMmLa%2ByT372YEAiv4%3D}}&Expires={{1741978496}}
   ```

1. Vous pouvez télécharger le fichier en utilisant l’URL présignée générée avec curl :

   ```
   curl -X GET {{"generated-presigned-url"}} -o {{"path/to/save/file"}} 
   ```

Pour d'autres exemples d'utilisation des AWS SDK pour générer une URL présignée pour partager un objet, consultez [Créer une URL présignée pour Amazon S3 à l'aide](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_Scenario_PresignedUrl_section.html) d'un SDK. AWS 

**Note**  
Pour tous Régions AWS ceux lancés après le 20 mars 2019, vous devez spécifier le `endpoint-url` et `Région AWS` avec la demande. Pour voir la liste complète des régions et points de terminaison Amazon S3, consultez [Régions et points de terminaison](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) dans la *Référence générale AWS *.

**Note**  
Lorsque vous utilisez les AWS SDK, l'attribut Tagging doit être un en-tête et non un paramètre de requête. Tous les autres attributs peuvent être transmis en tant que paramètre pour l’URL présignée. 

------

## Utilisation de AWS Toolkit for Visual Studio Windows
<a name="ShareObjectPreSignedURLVSExplorer"></a>

**Note**  
À l'heure actuelle, Visual Studio pour Mac AWS Toolkit for Visual Studio n'est pas compatible.

1. Installez le AWS Toolkit for Visual Studio en suivant les instructions ci-dessous, [Installation et configuration du Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/setup.html) dans le *guide de AWS Toolkit for Visual Studio l'utilisateur*.

1. Connectez-vous à AWS en suivant les étapes ci-dessous, section [Connexion à AWS](https://docs.aws.amazon.com/AWSToolkitVS/latest/UserGuide/connect.html) dans le *guide de AWS Toolkit for Visual Studio l'utilisateur*.

1. Dans le volet latéral gauche intitulé **Explorateur AWS **, double-cliquez sur le compartiment contenant votre objet.

1. Right-click l'objet pour lequel vous souhaitez générer une URL présignée et sélectionnez **Créer une Pre-Signed URL...** .

1. Dans la fenêtre contextuelle, définissez la date et l’heure d’expiration de votre URL présignée.

1. La **clé d’objet** devrait être préremplie en fonction de l’objet que vous avez sélectionné.

1. Choisissez **GET** pour spécifier que cette URL présignée est utilisée pour télécharger un objet.

1. Cliquez sur le bouton **Générer**.

1. Pour copier l’URL dans le presse-papiers, choisissez **Copier**.

1. Pour utiliser l’URL présignée générée, collez l’URL dans n’importe quel navigateur.

## Utilisation AWS Toolkit for Visual Studio Code
<a name="ShareObjectPreSignedURLVSCode"></a>

Si vous utilisez Visual Studio Code, vous pouvez générer une URL présignée pour partager un objet sans écrire de code grâce à AWS Toolkit for Visual Studio Code. Pour des informations générales, consultez [AWS Toolkit for Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/welcome.html) dans le *Guide de l’utilisateur AWS Toolkit for Visual Studio Code *. 

Pour obtenir des instructions sur l'installation du AWS Toolkit for Visual Studio Code, reportez-vous à la section [Installation du AWS Toolkit for Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/setup-toolkit.html) dans le *guide de AWS Toolkit for Visual Studio Code l'utilisateur*.

1. Connectez-vous à AWS en suivant les étapes ci-dessous, section [Connexion à AWS Toolkit for Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/connect.html) dans le *guide de AWS Toolkit for Visual Studio Code l'utilisateur*.

1. Sélectionnez le AWS logo sur le panneau de gauche dans Visual Studio Code.

1. Sous **EXPLORER**, sélectionnez **S3**.

1. Choisissez un compartiment et un fichier, puis ouvrez le menu contextuel (clic droit).

1. Choisissez **Générer une URL présignée**, puis définissez le délai d’expiration (en minutes).

1. Appuyez sur Entrée et l’URL présignée est copiée dans votre presse-papiers.