View a markdown version of this page

Création d'un formulaire HTML (à l'aide de AWS Signature (version 4) - 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.

Création d'un formulaire HTML (à l'aide de AWS Signature (version 4)

Pour permettre aux utilisateurs de télécharger du contenu sur Amazon S3 à l'aide de leur navigateur (requêtes HTTP POST), vous utilisez des formulaires HTML. Les formulaires HTML se composent d'une déclaration de formulaire et de champs de formulaire. La déclaration de formulaire contient des informations de haut niveau sur la demande. Les champs du formulaire contiennent des informations détaillées sur la demande.

Cette section explique comment créer des formulaires HTML. Pour un exemple concret de téléchargement basé sur un navigateur à l'aide de HTTP POST et des calculs de signature associés pour l'authentification des demandes, consultez. Exemple : Browser-Based téléchargement à l'aide de HTTP POST (à l'aide de AWS Signature (version 4)

Le formulaire et la politique doivent être UTF-8 codés. Vous pouvez appliquer le UTF-8 codage au formulaire en le spécifiant charset=UTF-8 dans l'contentattribut. Voici un exemple de UTF-8 codage dans le titre HTML.

<html> <head> ... <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> ... </head> <body>

Voici un exemple d' UTF-8 encodage dans un en-tête de demande.

Content-Type: text/html; charset=UTF-8
Note

Les données et les limites du formulaire (à l'exclusion du contenu du fichier) ne peuvent pas dépasser 20 Ko.

Déclaration de formulaire HTML

La déclaration de formulaire HTML possède les trois attributs suivants :

  • action— L'URL qui traite la demande, qui doit être définie sur l'URL du bucket. Par exemple, si le nom de votre compartiment estexamplebucket, l'URL esthttp://examplebucket.s3.amazonaws.com/.

    Note

    Le nom de clé est spécifié dans un champ du formulaire.

  • method— La méthode doit être POST.

  • enctype— Le type de pièce jointe (enctype) doit être défini sur multipart/form -data pour les téléchargements de fichiers et les téléchargements de zones de texte. Pour plus d'informations à ce sujetenctype, consultez la RFC 1867.

Il s'agit d'un formulaire de déclaration pour le bucketexamplebucket.

<form action="http://examplebucket.s3.amazonaws.com/" method="post" enctype="multipart/form-data">

Champs de formulaire HTML

Le tableau suivant décrit la liste des champs que vous pouvez utiliser dans un formulaire. Parmi les autres champs, il existe un champ de signature que vous pouvez utiliser pour authentifier les demandes. Certains champs vous permettent de spécifier l'algorithme de calcul de signature (x-amz-algorithm), l'étendue des informations d'identification (x-amz-credential) que vous avez utilisée pour générer la clé de signature et la date (x-amz-date) utilisée pour calculer la signature. Amazon S3 utilise ces informations pour recréer la signature. Si les signatures correspondent, Amazon S3 traite la demande.

Note

La variable ${filename} est automatiquement remplacée par le nom du fichier fourni par l'utilisateur et est reconnue par l'ensemble des champs de formulaire. Si le navigateur ou le client fournit un chemin complet ou partiel vers le fichier, seul le texte suivant la dernière barre oblique (/) ou la dernière barre oblique inverse (\) est utilisé (par exemple, C:\Program Files\directory1\file.txt est interprété comme). file.txt Si aucun fichier ni nom de fichier n'est fourni, la variable est remplacée par une chaîne vide.

Si vous ne fournissez pas les éléments requis pour les demandes authentifiées, tels que l'policyélément, la demande est considérée comme anonyme et n'aboutira que si vous avez configuré le compartiment pour la lecture et l'écriture publiques.

Nom d'élément Description Obligatoire
acl

Une liste de contrôle d'accès (ACL) Amazon S3 Si une ACL non valide est spécifiée, Amazon S3 refuse la demande. Pour plus d'informations sur les listes de contrôle d'accès, consultez la section Utilisation des listes de contrôle d'accès Amazon S3.

Type : Chaîne

Valeur par défaut : private

Valeurs valides : private | public-read | public-read-write | aws-exec-read | authenticated-read | bucket-owner-read | bucket-owner-full-control

Non

Cache-Control

Content-Type

Content-Disposition

Content-Encoding

Expires

REST-specific en-têtes. Pour de plus amples informations, veuillez consulter PutObject.

Non

key

Le nom clé de l'objet chargé.

Pour utiliser le nom de fichier fourni par l'utilisateur, utilisez la variable $ {filename}. Par exemple, si vous chargez un fichier photo1.jpg et que vous le spécifiez /user/user1/${filename} comme nom de clé, le fichier est enregistré sous/user/user1/photo1.jpg.

Pour plus d'informations, consultez la section Clé d'objet et métadonnées dans le guide de l'utilisateur d'Amazon Simple Storage Service.

Oui

policy

Politique de sécurité codée en base64 qui décrit ce qui est autorisé dans la demande. Pour les demandes authentifiées, une politique est requise.

Les demandes sans politique de sécurité sont considérées comme anonymes et ne réussiront que sur un bucket accessible en écriture publique.

Obligatoire pour les demandes authentifiées

success_action_redirect

URL vers laquelle le client est redirigé en cas d'échec du chargement.

Si success_action_redirect ce n'est pas spécifié, ou si Amazon S3 ne peut pas interpréter l'URL, Amazon S3 renvoie le type de document vide spécifié dans le success_action_status champ.

Si le chargement échoue, Amazon S3 renvoie une erreur et ne redirige pas l'utilisateur vers une autre URL.

Non

success_action_status

Le code d'état renvoyé au client une fois le téléchargement réussi s'il n'success_action_redirectest pas spécifié.

Les valeurs valides sont 200201, ou 204 (par défaut).

Si la valeur est définie sur 200 ou 204, Amazon S3 renvoie un document vide avec le code de statut spécifié.

Si la valeur est définie sur 201, Amazon S3 retourne un document XML avec un code de statut égal à 201. Pour plus d'informations sur le contenu du document XML, consultezPOST Object.

Si la valeur n'est pas définie ou n'est pas valide, Amazon S3 renvoie un document vide avec un code de statut 204.

Note

Certaines versions d'Adobe Flash Player ne traitent pas correctement les réponses HTTP dont le corps est vide. Pour prendre en charge les chargements via Adobe Flash, nous vous recommandons de définir success_action_status sur 201.

Non

x-amz-algorithm

Algorithme de signature utilisé pour authentifier la demande. Pour AWS la version 4 de Signature, la valeur estAWS4-HMAC-SHA256.

Ce champ est requis si un document de stratégie est inclus dans la demande.

Obligatoire pour les demandes authentifiées

x-amz-credential

Outre l'ID de votre clé d'accès, ce champ fournit également des informations d'étendue identifiant la région et le service pour lesquels la signature est valide. Il doit s'agir de la même étendue que celle que vous avez utilisée pour calculer la clé de signature pour le calcul de la signature.

Il s'agit d'une chaîne de la forme suivante :

<your-access-key-id>/<date>/<aws-region>/<aws-service>/aws4_request

Par exemple :

AKIAIOSFODNN7EXAMPLE/20130728/us-east-1/s3/aws4_request

Pour Amazon S3, la chaîne aws-service est. s3 Pour obtenir la liste des aws-region chaînes Amazon S3, consultez la section Régions et points de terminaison dans le Références générales AWS. Cela est nécessaire si un document de politique est inclus dans la demande.

Obligatoire pour les demandes authentifiées

x-amz-date

Il s'agit de la valeur de date au format ISO8601. Par exemple, 20130728T000000Z.

Il s'agit de la même date que celle que vous avez utilisée lors de la création de la clé de signature (par exemple, 20130728). Il doit également s'agir de la même valeur que celle que vous avez fournie dans la politique (x-amz-date) que vous avez signée.

Cela est nécessaire si un document de politique est inclus dans la demande.

Obligatoire pour les demandes authentifiées

x-amz-security-token

Un jeton de sécurité utilisé par Amazon DevPay et des informations d'identification de session

Si la demande utilise Amazon DevPay, elle nécessite deux champs de x-amz-security-token formulaire : un pour le jeton du produit et un pour le jeton utilisateur. Pour plus d'informations, consultez la section Utilisation DevPay dans le guide de l'utilisateur d'Amazon Simple Storage Service.

Si la demande utilise des informations d'identification de session, elle nécessite un x-amz-security-token formulaire. Pour plus d’informations, consultez Demande d’informations d’identification temporaires de sécurité dans le Guide de l’utilisateur IAM.

Non

x-amz-signature

(AWS Signature Version 4) Le HMAC-SHA256 hachage de la politique de sécurité.

Ce champ est requis si un document de stratégie est inclus dans la demande.

Obligatoire pour les demandes authentifiées

x-amz-meta-*

Les noms de champs commençant par ce préfixe sont des métadonnées définies par l'utilisateur. Chacune est stockée et renvoyée sous la forme d'un ensemble de paires clé-valeur. Amazon S3 ne valide ni n'interprète les métadonnées définies par l'utilisateur. Pour de plus amples informations, veuillez consulter PutObject.

Non

x-amz-*

Voir POST Object (POST Objectpour les autres x-amz-* en-têtes).

Non

file

Fichier ou contenu de texte.

Le fichier ou le contenu doit être le dernier champ du formulaire.

Vous ne pouvez pas charger plus d'un fichier à la fois.

Oui

Les éléments conditionnels sont obligatoires pour les demandes authentifiées et sont facultatifs pour les demandes anonymes.

Maintenant que vous savez comment créer des formulaires, vous pouvez ensuite créer une politique de sécurité que vous pouvez signer. Pour de plus amples informations, veuillez consulter Politique POST.