Téléchargement d'objets présignés URLs - Amazon Simple Storage Service

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.

Téléchargement d'objets présignés URLs

Vous pouvez utiliser Presigned URLs pour autoriser quelqu'un à charger un objet dans votre compartiment Amazon S3. L'utilisation d'une URL présignée permettra un téléchargement sans qu'une autre partie ne doive disposer d'informations d'identification ou d'autorisations AWS de sécurité. Une URL présignée est limitée par les autorisations de l’utilisateur qui l’a créée. Cela signifie que si vous recevez une URL présignée pour charger un objet, vous pouvez le charger uniquement si le créateur de l’URL dispose des autorisations nécessaires pour charger cet objet.

Lorsqu’une personne utilise l’URL pour charger un objet, Amazon S3 crée l’objet dans le compartiment spécifié. Si un objet avec la même clé que celle spécifiée dans l’URL présignée existe déjà dans le compartiment, Simple Storage Service (Amazon S3) remplace l’objet existant par l’objet chargé. Après le chargement, le propriétaire du compartiment devient propriétaire de l’objet.

Pour des informations générales sur le présigné URLs, consultezTéléchargez et chargez des objets avec une signature préalable URLs.

Vous pouvez créer une URL présignée pour le chargement d’un objet sans écrire de code grâce à AWS Explorer for Visual Studio. Vous pouvez également générer une URL présignée par programmation à l'aide du. AWS SDKs

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 dans le guide de AWS Toolkit for Visual Studio l'utilisateur.

  2. Connectez-vous à AWS en suivant les étapes ci-dessous, section Connexion à AWS dans le guide de AWS Toolkit for Visual Studio l'utilisateur.

  3. Dans le volet de gauche intitulé Explorateur AWS , cliquez avec le bouton droit sur le compartiment dans lequel vous souhaitez charger un objet.

  4. Choisissez Créer une URL présignée.

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

  6. Pour Clé d’objet, définissez le nom du fichier à charger. Le fichier que vous chargez doit correspondre exactement à ce nom. Si un objet avec la même clé que celle spécifiée dans l’URL présignée existe déjà dans le compartiment, Amazon S3 remplace l’objet existant par l’objet chargé.

  7. Choisissez PUT pour spécifier que cette URL présignée est utilisée pour charger un objet.

  8. Cliquez sur le bouton Générer.

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

  10. Pour utiliser cette URL, vous pouvez envoyer une demande PUT avec la commande curl. Incluez le chemin complet de votre fichier et l’URL présignée elle-même.

    curl -X PUT -T "/path/to/file" "presigned URL"

Vous pouvez générer une URL présignée qui peut exécuter une action S3 pendant une durée limitée.

Note

Si vous utilisez la AWS CLI ou AWS SDKs, le délai d'expiration du présigné URLs peut être fixé à 7 jours. Pour plus d'informations, consultez la section Délai d'expiration des documents présignés URLs.

Python

Le script Python suivant génère une URL PUT présignée pour le téléchargement d'un objet dans un compartiment S3 à usage général.

  1. Copiez le contenu du script et enregistrez-le sous forme de fichier « put-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, "put_object", {"Bucket": args.bucket, "Key": args.key}, 1000 ) print(f"Generated PUT presigned URL: {url}") if __name__ == "__main__": main()
  2. Pour générer une URL PUT présignée pour le téléchargement 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 exemples de valeurs. Remplacez user input placeholders par vos propres informations.

    python put-only-url.py amzn-s3-demo-bucket <object-path>

    Le script affichera une URL PUT présignée :

    Generated PUT presigned URL: https://amzn-s3-demo-bucket.s3.amazonaws.com/object.txt?AWS AccessKeyId=AKIAIOSFODNN7EXAMPLE&Signature=vjbyNxybdZaMmLa%2ByT372YEAiv4%3D&Expires=1741978496
  3. Vous pouvez maintenant télécharger le fichier en utilisant l'URL présignée générée avec curl :

    curl -X PUT -T "path/to/your/local/file" "generated-presigned-url"

Pour d'autres exemples d'utilisation du AWS SDKs pour générer une URL présignée pour le téléchargement d'un objet, consultez Créer une URL présignée pour Amazon S3 à l'aide d'un SDK. AWS