Sube objetos mediante formularios HTML. El objeto subido reemplaza cualquier objeto existente con el mismo nombre. Para obtener sugerencias sobre cómo subir a Cloud Storage, consulta las prácticas recomendadas.
Para obtener información sobre las solicitudes de objetos POST
mediante el proceso de firma heredado, consulta Objeto POST con el proceso de firma de V2.
Parámetros de string de consulta
Esta solicitud no incluye parámetros de cadena de consulta.
Campos del formulario
Campo | Descripción | Obligatorio |
---|---|---|
acl |
La LCA predefinida que deseas aplicar al objeto que se está subiendo. Si no especificas este campo, se aplica la LCA del default del depósito. |
No |
bucket |
El nombre del depósito al que deseas subir el archivo. Si incluyes este campo, debe coincidir con el nombre del depósito que especifiques en el atributo action . |
No |
Cache-Control |
El control de caché del objeto. Solo puedes configurar el control de caché para un objeto al que pueda acceder todos los usuarios. Por ejemplo, la LCA de un objeto debe ser public-read o public-read-write para poder configurar el control de caché. |
No |
Content-Disposition |
Especifica cómo se deben transmitir los datos del objeto. Por ejemplo, un valor Content-Disposition de inline significa que el objeto debe mostrarse de inmediato. |
No |
Content-Encoding |
El algoritmo de compresión para el objeto, como gzip . |
No |
Content-Length |
El tamaño del archivo que se subió, en bytes. | No |
Content-Type |
El tipo de MIME del archivo que estás subiendo mediante el formulario. Si no especificas un tipo de contenido, el sistema de Cloud Storage usa de forma predeterminada application/octet-stream cuando entrega el contenido. |
No |
Expires |
Una marca de tiempo ISO8601 que especifica la fecha y hora antes de que el navegador considera inactiva un objeto. | No |
file |
El archivo que estás subiendo. Debe ser el último campo del formulario. Solo puedes subir un objeto por solicitud. | Sí |
key |
El nombre del objeto que deseas subir. También puedes usar la variable ${filename} si un usuario proporciona un nombre de archivo. | Sí |
policy |
La política de seguridad que describe lo que puede y no se puede subir en el formulario. El documento de políticas debe estar codificado en Base64. Consulta los documentos de las políticas para obtener más información. *Si no proporcionas una política de seguridad, se considera que las solicitudes son anónimas y solo funcionarán con depósitos que tengan permiso |
No* |
success_action_redirect |
URL a la que se redirige a los usuarios cuando una carga se realiza correctamente Si no proporcionas una URL, Cloud Storage responde con el código de estado que especificaste en success_action_status . |
No |
success_action_status |
El código de estado con el que quieres que responda Cloud Storage cuando se completa una carga. El valor predeterminado es 204, pero puedes cambiarlo en 200 o 201. Si eliges 200 o 204, Cloud Storage muestra un documento vacío con esos códigos de estado. Si eliges 201, Cloud Storage muestra un documento XML con los elementos que se describen en los elementos del cuerpo de la respuesta. Nota: Es posible que el reproductor Adobe Flash no maneje las respuestas con un cuerpo de documento vacío. En ese caso, debes usar el código de estado 201. | No |
x-goog-algorithm |
El algoritmo de firma usado para crear la firma asociada con tu documento de políticas. Los valores posibles son GOOG4-HMAC-SHA256 y GOOG4-RSA-SHA256 . |
Solo si especificas un policy |
x-goog-credential |
Las credenciales que se usan para crear la firma asociada con tu documento de política. x-goog-credential tiene el formato AccessKeyId/CredentialScope , donde:
|
Solo si especificas un policy |
x-goog-custom-time |
Una fecha y hora especificadas por el usuario en el formato YYYY-MM-DD'T'HH:MM:SS.SS'Z' RFC 3339 |
No |
x-goog-date |
La fecha actual, en el formato básico de ISO 8601 YYYYMMDD'T'HHMMSS'Z' |
Solo si especificas un policy |
x-goog-signature |
La firma asociada con tu documento de política. | Solo si especificas un policy |
x-goog-meta-* |
Un campo para los metadatos personalizados. Puedes usarlo para especificar los metadatos adicionales que no proporcionen los otros campos del formulario. Por ejemplo, x-goog-meta-reviewer: jane o x-goog-meta-project-manager: john son metadatos personalizados. |
No |
Elementos del cuerpo de la respuesta
Los siguientes elementos del cuerpo de respuesta se muestran en un documento XML solo si configuras success_action_status
como 201.
Elemento | Descripción |
---|---|
Bucket |
Depósito en el que se almacenó el objeto |
ETag |
La etiqueta de entidad HTTP 1.1 para el objeto. |
Key |
El nombre del objeto. |
Location |
El URI del objeto. |
Uso y ejemplos
El formulario debe estar codificado en UTF-8. Puedes especificar la codificación de formulario en la etiqueta HTML head
del formulario o con el encabezado de solicitud Content-Type
.
Tu etiqueta form
debe especificar los siguientes tres elementos:
Una acción
El atributo
action
especifica un extremo de solicitud de la API de XML. Los extremos válidos incluyen los redireccionamientoshttps://BUCKET_NAME.storage.googleapis.com
,https://storage.googleapis.com/BUCKET_NAME
yCNAME
.Un método.
El atributo
method
especifica el método que usas para enviar el formulario. Debe serpost
.Un tipo de soporte.
El atributo
enctype
especifica el tipo de contenido que usas y siempre debe sermultipart/form-data
.
El siguiente es un formulario HTML de ejemplo con un documento de política:
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++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C++.
C#
C#
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C#.
Java
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Java.
Comienza a usarlo
Comienza a usarlo
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Go.
Node.js
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Node.js.
PHP
PHP
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para PHP.
Python
Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Python.
Ruby
Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Ruby.
Como práctica recomendada, debes usar el encabezado Expect: 100-continue
con solicitudes POST. Esto te permite verificar que el servidor maneje la solicitud antes de enviar el objeto. Si recibes un código de estado 100 Continue
, debes continuar con la solicitud. Si recibes un código de estado 417 Expectation Failed
, no debes enviar el objeto.