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.
Politique POST
La politique requise pour effectuer des demandes authentifiées à l'aide de HTTP POST est un UTF-8 document codé en base64 écrit en notation JavaScript objet (JSON) qui spécifie les conditions que la demande doit remplir. Selon la manière dont vous concevez votre document de politique, vous pouvez contrôler la granularité de l'accès par téléchargement, par utilisateur, pour tous les téléchargements ou selon d'autres modèles répondant à vos besoins.
Cette section décrit la politique POST. Pour des exemples de calculs de signature à l'aide de la politique POST, consultezExemple : Browser-Based téléchargement à l'aide de HTTP POST (à l'aide de AWS Signature (version 4).
Note
Bien que le document de politique soit facultatif, nous vous recommandons vivement d'en utiliser un afin de contrôler ce qui est autorisé dans la demande. Si vous rendez le compartiment accessible en écriture publique, vous n'avez aucun contrôle sur les utilisateurs qui peuvent y écrire.
Voici un exemple de document de politique POST.
{ "expiration": "2007-12-01T12:00:00.000Z", "conditions": [ {"acl": "public-read" }, {"bucket": "johnsmith" }, ["starts-with", "$key", "user/eric/"], ] }
La politique POST contient toujours les conditions éléments expiration et. L'exemple de politique utilise deux types de correspondance de conditions (correspondance exacte et correspondance commençant par une correspondance). Les sections suivantes décrivent ces éléments.
Expiration
L'expirationélément spécifie la date et l'heure d'expiration de la politique POST au format de date ISO8601 GMT. Par exemple, 2013-08-01T12:00:00.000Z spécifie que la politique POST n'est pas valide après minuit GMT le 1er août 2013.
Correspondance des conditions
Le tableau suivant décrit les types de correspondance de conditions que vous pouvez utiliser pour spécifier les conditions de politique POST (décrites dans la section suivante). Bien que vous deviez spécifier au moins une condition pour chaque champ de formulaire que vous spécifiez dans le formulaire, vous pouvez créer des critères de correspondance plus complexes en spécifiant plusieurs conditions pour un champ de formulaire.
| Type de correspondance de condition | Description |
|---|---|
|
Correspondances exactes |
La valeur du champ de formulaire doit correspondre à la valeur spécifiée. Cet exemple indique que la liste ACL doit être définie sur public-read :
Cet exemple représente une méthode alternative pour indiquer que la liste ACL doit être définie sur public-read :
|
|
Commence par |
La valeur doit commencer par la valeur spécifiée. Cet exemple indique que la clé de l'objet doit commencer par user/user1 :
|
|
Correspondance Content-Types dans une Comma-Separated liste |
Content-Types les valeurs d'une
La valeur suivante satisferait à la condition :
La valeur suivante ne satisferait pas à la condition :
NoteLes éléments de données autres que ceux |
|
Correspondance avec un contenu quelconque |
Pour configurer la politique POST afin d'autoriser tout contenu dans un champ de formulaire, utilisez
|
|
Spécification de plages |
Pour les champs de formulaire qui acceptent une plage, séparez les limites supérieure et inférieure par une virgule. Cet exemple autorise une taille de fichier comprise entre 1 et 10 Mo :
|
Les conditions spécifiques prises en charge dans une politique POST sont décrites dansConditions.
Conditions
conditionsDans une politique POST, il y a un tableau d'objets, dont chacun est utilisé pour valider la demande. Vous pouvez utiliser ces conditions pour restreindre ce qui est autorisé dans la demande. Par exemple, les conditions de politique précédentes exigent ce qui suit :
-
La demande doit spécifier le nom du
johnsmithcompartiment. -
Le nom de la clé de l'objet doit comporter le
user/ericpréfixe. -
L'ACL de l'objet doit être définie sur
public-read.
Chaque champ de formulaire que vous spécifiez dans un formulaire (à l'exception des noms de champs x-amz-signature filepolicy,, et des noms de champs x-ignore- comportant un préfixe) doit figurer dans la liste des conditions.
Note
Toutes les variables du formulaire sont développées avant la validation de la politique POST. Par conséquent, toutes les correspondances de conditions doivent se faire par rapport aux champs de formulaire étendus. Supposons que vous souhaitiez limiter le nom de la clé de votre objet à un préfixe spécifique (user/user1). Dans ce cas, vous définissez le champ du formulaire clé suruser/user1/${filename}. Votre politique POST doit être [
"starts-with", "$key", "user/user1/" ] (ne pas entrer[
"starts-with", "$key", "user/user1/${filename}" ]). Pour de plus amples informations, veuillez consulter Correspondance des conditions.
Les conditions du document de politique sont décrites dans le tableau suivant.
| Nom d'élément | Description |
|---|---|
acl |
Spécifie la valeur ACL qui doit être utilisée lors de la soumission du formulaire. Cette condition prend en charge la correspondance exacte et le type de correspondance des |
bucket |
Spécifie le nom de compartiment acceptable. Cette condition prend en charge le type de correspondance de condition correspondant exactement. |
content-length-range |
Taille minimale et maximale autorisée pour le contenu téléchargé. Cette |
Cache-Control
|
REST-specific en-têtes. Pour de plus amples informations, veuillez consulter POST Object. Cette condition prend en charge la correspondance exacte et le type de correspondance des |
key |
Le nom de clé acceptable ou un préfixe de l'objet chargé. Cette condition prend en charge la correspondance exacte et le type de correspondance des |
success_action_redirect
|
URL vers laquelle le client est redirigé en cas d'échec du chargement. Cette condition prend en charge la correspondance exacte et le type de correspondance des |
success_action_status |
Le code d'état renvoyé au client une fois le téléchargement réussi s'il n' Cette condition permet une correspondance exacte. |
x-amz-algorithm |
Algorithme de signature qui doit être utilisé lors du calcul de signature. Pour AWS la version 4 de Signature, la valeur est Cette condition permet une correspondance exacte. |
x-amz-credential |
Les informations d'identification que vous avez utilisées pour calculer la signature. Il fournit l'identifiant de la clé d'accès et les informations de portée 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 :
Par exemple :
Pour Amazon S3, la chaîne aws-service est. Cette condition permet une correspondance exacte. |
x-amz-date |
La valeur de date spécifiée dans la chaîne au format ISO8601. Par exemple, Cela est obligatoire si un document de politique POST est inclus dans la demande. Cette condition permet une correspondance exacte. |
x-amz-security-token |
Jeton DevPay de sécurité Amazon. Chaque demande qui utilise Amazon DevPay nécessite deux champs de Pour plus d'informations sur Amazon DevPay, consultez la section Utilisation DevPay dans le guide de l'utilisateur d'Amazon Simple Storage Service. |
x-amz-meta-* |
User-specified métadonnées. Cette condition prend en charge la correspondance exacte et le type de correspondance des |
x-amz-* |
Voir POST Object (POST Objectpour les autres Cette condition permet une correspondance exacte. |
Note
Si votre boîte à outils ajoute d'autres champs de formulaire (par exemple, Flash ajoutefilename), vous devez les ajouter au document de politique POST. Si vous pouvez contrôler cette fonctionnalité, ajoutez le préfixe x-ignore- au champ afin qu'Amazon S3 ignore la fonction et que les versions futures de cette fonction ne soient pas affectées.
Echappement de caractère
Les caractères qui doivent être supprimés dans un document de politique POST sont décrits dans le tableau suivant.
| Séquence d'échappement | Description |
|---|---|
|
\\ |
Barre oblique inverse |
|
\$ |
Symbole du dollar |
|
\b |
Retour arrière |
|
\f |
Saut de page |
|
\n |
Nouvelle ligne |
|
\r |
Retour chariot |
|
\t |
Tabulation horizontale |
|
\v |
Tabulation verticale |
|
\ u |
Tous les caractères Unicode |
Maintenant que vous connaissez les formulaires et les politiques, et que vous comprenez comment fonctionne la signature, vous pouvez essayer un exemple de téléchargement POST. Vous devez écrire le code pour calculer la signature. L'exemple fournit un exemple de formulaire et une politique POST que vous pouvez utiliser pour tester vos calculs de signature. Pour de plus amples informations, veuillez consulter Exemple : Browser-Based téléchargement à l'aide de HTTP POST (à l'aide de AWS Signature (version 4).