Permet d'importer des objets à l'aide de formulaires HTML. L'objet importé remplace tout objet existant portant le même nom. Pour obtenir des conseils sur l'importation dans Cloud Storage, consultez les bonnes pratiques.
Pour en savoir plus sur les requêtes d'objet POST
à l'aide de l'ancien processus de signature, consultez la section Objet POST avec le processus de signature V2.
Paramètres de la chaîne de requête
Cette requête n'inclut pas les paramètres de chaîne de requête.
Champs de formulaire
Champ | Description | Requis |
---|---|---|
acl |
La LCA prédéfinie que vous souhaitez appliquer à l'objet en cours d'importation. Si vous ne spécifiez pas ce champ, la LCA default du bucket est appliquée. |
Non |
bucket |
Nom du bucket dans lequel vous souhaitez importer les données. Si vous incluez ce champ, il doit correspondre au nom du bucket que vous spécifiez dans l'attribut action . |
Non |
Cache-Control |
Contrôle du cache pour l'objet. Vous ne pouvez définir le contrôle du cache que pour un objet accessible à tous les utilisateurs. Par exemple, la LCA d'un objet doit être public-read ou public-read-write pour pouvoir définir le contrôle du cache. |
Non |
Content-Disposition |
Spécifie comment les données de l'objet doivent être transmises. Par exemple, une valeur Content-Disposition de inline signifie que l'objet doit être affiché immédiatement. |
Non |
Content-Encoding |
Algorithme de compression de l'objet, tel que gzip . |
Non |
Content-Length |
Taille du fichier importé, en octets. | Non |
Content-Type |
Type MIME du fichier que vous importez via le formulaire. Si vous ne spécifiez pas de type de contenu, le système Cloud Storage utilise par défaut la valeur application/octet-stream lorsqu'il diffuse le contenu. |
Non |
Expires |
Un horodatage ISO 8601 qui spécifie la date et l'heure avant qu'un objet soit considéré comme obsolète par le navigateur. | Non |
file |
Le fichier que vous importez. Il doit s'agir du dernier champ du formulaire. Vous ne pouvez importer qu'un seul objet par requête. | Oui |
key |
Nom de l'objet que vous importez. Vous pouvez également utiliser la variable ${filename} si un utilisateur fournit un nom de fichier. | Oui |
policy |
La stratégie de sécurité qui décrit ce qui peut et ne peut pas être importé dans le formulaire. Le document de stratégie doit être encodé en base64. Pour en savoir plus, consultez les documents relatifs aux règles. *Si vous ne fournissez pas de règles de sécurité, les requêtes sont considérées comme anonymes et ne fonctionnent qu'avec des buckets disposant de l'autorisation |
Non* |
success_action_redirect |
URL vers laquelle les utilisateurs sont redirigés lorsqu'une importation a réussi. Si vous ne fournissez pas d'URL, Cloud Storage répond avec le code d'état que vous avez spécifié dans success_action_status . |
Non |
success_action_status |
Code d'état à partir duquel vous voulez que Cloud Storage répond lorsqu'une importation a réussi. La valeur par défaut est 204, mais vous pouvez la remplacer par 200 ou 201. Si vous choisissez 200 ou 204, Cloud Storage renvoie un document vide avec ces codes d'état. Si vous choisissez 201, Cloud Storage renvoie un document XML avec les éléments décrits dans la section "Éléments de corps de réponse". Remarque: Le lecteur Adobe Flash peut ne pas gérer les réponses si le corps du document est vide. Vous devez utiliser le code d'état 201 si c'est le cas. | Non |
x-goog-algorithm |
L'algorithme de signature utilisé pour créer la signature associée à votre document de stratégie. Les valeurs possibles sont GOOG4-HMAC-SHA256 et GOOG4-RSA-SHA256 . |
Seulement si vous spécifiez un policy |
x-goog-credential |
Les identifiants utilisés pour créer la signature associée à votre document de stratégie. x-goog-credential se présente sous la forme AccessKeyId/CredentialScope , où :
|
Seulement si vous spécifiez un policy |
x-goog-custom-time |
Date et heure définies par l'utilisateur au format RFC 3339 YYYY-MM-DD'T'HH:MM:SS.SS'Z' . |
Non |
x-goog-date |
Date actuelle, au format de base ISO 8601 YYYYMMDD'T'HHMMSS'Z' . |
Seulement si vous spécifiez un policy |
x-goog-signature |
La signature associée au document de stratégie. | Seulement si vous spécifiez un policy |
x-goog-meta-* |
Champ de métadonnées personnalisées. Vous pouvez utiliser cette option pour spécifier des métadonnées supplémentaires qui ne sont pas fournies par les autres champs de formulaire. Par exemple, x-goog-meta-reviewer: jane ou x-goog-meta-project-manager: john sont des métadonnées personnalisées. |
Non |
Éléments du corps de la réponse
Les éléments de corps de réponse suivants ne sont renvoyés dans un document XML que si vous définissez success_action_status
sur 201.
Élément | Description |
---|---|
Bucket |
Bucket dans lequel l'objet a été stocké. |
ETag |
Tag d'entité HTTP 1.1 pour l'objet. |
Key |
Nom de l'objet. |
Location |
URI de l'objet. |
Utilisation et exemples
Le formulaire doit être encodé au format UTF-8. Vous pouvez spécifier l'encodage du formulaire dans la balise HTML head
du formulaire ou à l'aide de l'en-tête de requête Content-Type
.
Votre balise form
doit spécifier les trois éléments suivants:
Une action.
L'attribut
action
spécifie un point de terminaison de requête de l'API XML. Les points de terminaison valides incluenthttps://BUCKET_NAME.storage.googleapis.com
,https://storage.googleapis.com/BUCKET_NAME
etCNAME
redirections.Une méthode.
L'attribut
method
spécifie la méthode que vous utilisez pour envoyer le formulaire. Il doit êtrepost
.Type de boîtier.
L'attribut
enctype
spécifie le type de boîtier utilisé et doit toujours êtremultipart/form-data
.
Voici un exemple de formulaire HTML utilisant un document contenant des règles:
HTML
<form action="https://storage.googleapis.com/travel-maps" method="post" enctype="multipart/form-data"> <input type="text" name="key" value="test-object"> <input type="hidden" name="Content-Type" value="image/jpeg"> <input type="hidden" name="success_action_redirect" value="https://www.example.com/success_notification.html"> <input type="hidden" name="policy" value="eyJjb25kaXRpb25zIjpbeyJidWNrZXQiOiJ0cmF2ZWwtbWFwcyJ9LHsiY29udGVudC10eXBlIjoiaW1hZ2UvanBlZyJ9LHsic3VjY2Vzc19hY3Rpb25fcmVkaXJlY3QiOiJodHRwOi8vd3d3LmV4YW1wbGUuY29tL3N1Y2Nlc3Nfbm90aWZpY2F0aW9uLmh0bWwifSx7ImtleSI6InRlc3Qtb2JqZWN0In0seyJ4LWdvb2ctZGF0ZSI6IjIwMjAwMTIzVDA0MzUzMFoifSx7IngtZ29vZy1jcmVkZW50aWFsIjoiZXhhbXBsZV9hY2NvdW50QGV4YW1wbGVfcHJvamVjdC5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbS8yMDE5MTEwMi9hdXRvL3N0b3JhZ2UvZ29vZzRfcmVxdWVzdCJ9LHsieC1nb29nLWFsZ29yaXRobSI6IkdPT0c0LVJTQS1TSEEyNTYifV0sImV4cGlyYXRpb24iOiIyMDIwLTAxLTIzVDA0OjM1OjQwWiJ9"> <input type="hidden" name="x-goog-algorithm" value="GOOG4-RSA-SHA256"> <input type="hidden" name="x-goog-credential" value="example_account@example_project.iam.gserviceaccount.com/20191102/auto/storage/goog4_request"> <input type="hidden" name="x-goog-date" value="20191102T043530Z"> <input type="hidden" name="x-goog-signature" value="58bc39b8f604ee1f18171fee4828ef8967f3d2721676570e115d68c2f133820cbb833976f18955516b2b7d0c3d9660fea613a2ad90c240bd02c1eefa4a55e9038ce74dcfdd34e278ea0436e261131a36fa4e922f0a077ca1c9842f654928aac3ca7f9341075f9db275d8286b5ef13e7f91b4837e77b2a6dbea83f86b90f848331053d8a6b1fbc26787992e7fb819a2005bae9b3026b9c7d1158e88e4a2018f13757083c7873241d2dfe6ea46a17cd6f3d090f3e0da44ccfbd6bc425124de1bea744a32f3ab175672a991ef274cd83550eca57ea591b85fa9799098a38ec552dc3ec679c431491444820624f5c4ba0c8cf87d60af89899afce2a90325c6966dcf"> <input name="file" type="file"> <input type="submit" value="Upload"> </form>
C++
C++
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.
C#
C#
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C#.
Java
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Go
Go
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.
Node.js
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.
PHP
PHP
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.
Python
Python
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.
Ruby
Ruby
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.
Il est recommandé d'utiliser l'en-tête Expect: 100-continue
avec les requêtes POST. Cela vous permet de vérifier que le serveur traitera la requête avant d'envoyer l'objet. Si vous recevez un code d'état 100 Continue
, poursuivez la demande. Si vous recevez un code d'état 417 Expectation Failed
, vous ne devez pas envoyer l'objet.