Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2024-09-18 GMT+08:00

Carga de objetos - POST

Funciones

Esta operación carga un objeto a un bucket. Para usar esta operación, debe tener el permiso de escritura para el bucket.

El nombre de cada objeto de un bucket debe ser único.

Si el control de versiones no está habilitado, si un objeto que se va a cargar tiene el mismo nombre que un objeto existente en el bucket, el objeto recién cargado sobrescribirá al existente. Para proteger los datos de daños durante la transmisión, puede agregar el parámetro Content-MD5 en el campo de formulario. Después de recibir el objeto cargado, OBS compara el valor MD5 proporcionado con el valor MD5 que calcula. Si los dos valores no coinciden, OBS informa de un error. También puede especificar el valor del parámetro x-obs-acl para configurar una política de control de acceso para el objeto.

También puede cargar un objeto utilizando el método POST.

Para una sola carga, el tamaño del objeto que se va a cargar varía [0, 5 GB]. Para cargar un archivo de más de 5 GB, consulte Operaciones en carga multiparte.

Esta operación admite la encriptación del lado del servidor.

Diferencias entre los métodos PUT y POST

Los parámetros se pasan a través de la cabecera de petición si el método PUT se usa para cargar objetos; si el método POST se usa para cargar objetos, los parámetros se pasan a través del campo de formulario en el cuerpo del mensaje.

Con el método PUT, debe especificar el nombre de objeto en la URL, pero el nombre de objeto no es necesario con el método POST, que utiliza el nombre de dominio de bucket como URL. Las líneas de solicitud de estos dos métodos se dan de la siguiente manera:

PUT /ObjectName HTTP/1.1
POST / HTTP/1.1

Para obtener más información sobre la carga de PUT, consulte Carga de objetos - PUT.

Control de versiones

Si el control de versiones está habilitado para un bucket, el sistema genera automáticamente un ID de versión único para el objeto solicitado en este bucket y devuelve el ID de versión en el encabezado de respuesta x-obs-version-id. Si se suspende el control de versiones de un bucket, el ID de versión del objeto solicitado en este bucket es null. Para obtener más información sobre los estados de control de versiones de un bucket, consulte Configuración del control de versiones para un bucket.

WORM

Si un bucket tiene WORM habilitado, puede configurar políticas de retención para objetos en el bucket. Puede especificar los encabezados x-obs-object-lock-mode y x-obs-object-lock-retain-until-date para configurar una política de retención al cargar un objeto. Si no especifica estos dos encabezados pero ha configurado una política WORM predeterminada a nivel de bucket, esta política predeterminada se aplica automáticamente al objeto recién cargado. También puede configurar o actualizar una política de retención de WORM para un objeto existente.

Cuando habilita WORM para un bucket, OBS activa automáticamente el control de versiones para el bucket. WORM protege los objetos basándose en los IDs de versión del objeto. Solo se protegerán las versiones de objetos con cualquier política de retención de WORM configurada. Supongamos que el objeto test.txt 001 está protegido por WORM. Si se carga otro archivo con el mismo nombre, se generará una nueva versión de objeto test.txt 002 sin política de WORM configurada. En tal caso, test.txt 002 no están protegidas y se pueden eliminar. Cuando descargue un objeto sin especificar un ID de versión, se descargará la versión actual del objeto (test.txt 002).

Sintaxis de solicitud

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
POST / HTTP/1.1 
Host: bucketname.obs.region.myhuaweicloud.com User-Agent: browser_data
Accept: file_types
Accept-Language: Regions
Accept-Encoding: encoding
Accept-Charset: character_set
Keep-Alive: 300 
Connection: keep-alive 
Content-Type: multipart/form-data; boundary=9431149156168 
Content-Length: length


--9431149156168 
Content-Disposition: form-data; name="key" 

acl 
--9431149156168 
Content-Disposition: form-data; name="success_action_redirect"
success_redirect 
--9431149156168 
Content-Disposition: form-data; name="content-Type" 

content_type 
--9431149156168 
Content-Disposition: form-data; name="x-obs-meta-uuid" 

uuid 
--9431149156168 
Content-Disposition: form-data; name="x-obs-meta-tag" 

metadata 
--9431149156168 
Content-Disposition: form-data; name="AccessKeyId" 

access-key-id 
--9431149156168 
Content-Disposition: form-data; name="policy" 

encoded_policy 
--9431149156168 
Content-Disposition: form-data; name="signature" 

signature= 
--9431149156168 
Content-Disposition: form-data; name="file"; filename="MyFilename" 
Content-Type: image/jpeg 

file_content 
--9431149156168 
Content-Disposition: form-data; name="submit" 

Upload to OBS 
--9431149156168--

Parámetros de solicitud

Esta solicitud no contiene parámetros.

Encabezados de solicitud

Esta solicitud utiliza encabezados comunes. Para más detalles, consulte Tabla 3.

Si desea obtener información de configuración de CORS, debe usar los encabezados en Tabla 1.

Tabla 1 Solicitud de encabezados para obtener la configuración de CORS

Encabezado

Descripción

Obligatorio

Origin

Origen de la solicitud entre dominios especificada por la solicitud previa. En general, es un nombre de dominio.

Tipo: string

Access-Control-Request-Headers

Indica los encabezados HTTP de una solicitud. La solicitud puede utilizar varios encabezados HTTP.

Tipo: string

No

Si aún se muestra un mensaje de error después de que CORS haya sido configurado, rectifique el error consultando ¿Por qué se reporta un error incluso si CORS ha sido configurado?

Elementos de solicitud

Esta solicitud utiliza elementos de formulario. Tabla 2 describe los elementos del formulario.

Tabla 2 Elementos de formulario

Parámetro

Descripción

Obligatorio

file

Especifica el contenido del objeto cargado. Tanto el nombre de archivo como la ruta de acceso del archivo se ignoran y no se utilizarán como nombre de objeto. El nombre del objeto es el valor del parámetro key.

Tipo: contenido binario o texto

Restricción: este parámetro debe ser el último parámetro de un formulario. De lo contrario, los parámetros después de este parámetro serán descartados. Además, cada solicitud contiene solo un parámetro de archivo.

key

Indica el nombre del objeto que se va a crear.

Tipo: string

AccessKeyId

ID de clave de acceso (AK) del solicitante.

Tipo: string

Restricción: Este parámetro es obligatorio si hay una política de parámetros policy o signature en la solicitud.

Sí cuando se cumple la restricción.

policy

Indica la política de seguridad en la solicitud. Para obtener más información sobre el formato de política, consulte el formato de política en Autenticación de la firma transportada en la tabla cargada con un navegador.

Tipo: string

Restricción: Este parámetro es obligatorio si el bucket proporciona el AccessKeyId (o signature).

Sí cuando se cumple la restricción.

signature

Indica una string de firma calculada sobre la base de "StringToSign".

Tipo: string

Restricción: Este parámetro es obligatorio si el bucket proporciona el AccessKeyId (o policy).

Sí cuando se cumple la restricción.

token

Especifica el AK, la firma y la política de seguridad del iniciador de solicitud. La prioridad de un token es mayor que la de un AK especificado, la firma de solicitud y la política de seguridad del iniciador de solicitud.

Tipo: string

Ejemplo:

In HTML: <input type= "text" name="token" value="ak:signature:policy" />

No

x-obs-acl

Al crear un bucket, puede agregar este encabezado para establecer la política de control de permisos para el bucket. Las políticas comunes predefinidas son las siguientes: private, public-read, public-read-write, public-read-delivered, y public-read-write-delivered (para obtener más información sobre las políticas, consulte la configuración de ACL mediante campos de encabezado en ACLs).

Tipo: string

Ejemplos:

In POLICY: {"acl": "public-read" }

In HTML: <input type="text" name="acl" value="public-read" />

No

x-obs-grant-read

Al crear un objeto, puede utilizar este encabezado para conceder a todos los usuarios de una cuenta los permisos para leer el objeto y obtener los metadatos del objeto.

Tipo: string

Ejemplos:

En POLICY: {'grant-read': 'id=domainId1' },

En HTML: <input type="text" name="grant-read" value="id=domainId1" />

No

x-obs-grant-read-acp

Al crear un objeto, puede utilizar este encabezado para conceder a todos los usuarios de una cuenta el permiso para obtener la ACL del objeto.

Tipo: string

Ejemplos:

En POLICY: {"grant-read-acp": "id=domainId1" },

En HTML: <input type="text" name="grant-read-acp" value="id=domainId1" />

No

x-obs-grant-write-acp

Al crear un objeto, puede utilizar este encabezado para conceder a todos los usuarios de una cuenta el permiso para escribir la ACL de destino.

Tipo: string

Ejemplos:

En POLICY: {"grant-write-acp": "id=domainId1" },

En HTML: <input type="text" name="grant-write-acp" value="id=domainId1" />

No

x-obs-grant-full-control

Al crear un objeto, puede utilizar este encabezado para conceder a todos los usuarios de una cuenta los permisos para leer el objeto, obtener los metadatos del objeto y la ACL, y escribir la ACL del objeto.

Tipo: string

Ejemplos:

In POLICY: {"grant-full-control": "id=domainId1" },

En HTML: <input type="text" name="grant-full-control" value="id=domainId1" />

No

x-obs-storage-class

Al crear un objeto, puede utilizar este encabezado para especificar la clase de almacenamiento para el objeto. Si no utiliza este encabezado, la clase de almacenamiento de objetos es la clase de almacenamiento predeterminada del bucket.

Tipo: string

Opciones de clase de almacenamiento: STANDARD (Standard), WARM (Infrequent Access), COLD (Archive). Los valores distinguen entre mayúsculas y minúsculas.

Ejemplos:

En POLICY: {"storage-class": "STANDARD" },

En HTML: <input type="text" name="x-obs-storage-class" value="STANDARD" />

No

Cache-Control,

Content-Type,

Content-Disposition,

Content-Encoding

Expires

Encabezados HTTP estándar. OBS registra esos encabezados. Si descarga el objeto o envía la solicitud HEAD Object, se devuelven esos valores de parámetro.

Tipo: string

Ejemplos:

En POLICY: ["starts-with", "$Content-Type", "text/"],

En HTML: <input type="text" name="content-type" value="text/plain" />

No

success_action_redirect

Indica la dirección (URL) a la que se redirige una solicitud respondida correctamente.

  • Si el valor es válido y la solicitud se realiza correctamente, OBS devuelve el código de estado 303. Location contiene success_action_redirect, así como el nombre del bucket, el nombre del objeto y el objeto ETag.
  • Si este valor de parámetro no es válido, OBS omite este parámetro. En tal caso, el encabezado Location es la dirección del objeto, y OBS devuelve el código de respuesta basándose en si la operación tiene éxito o falla.

Tipo: string

Ejemplos:

En POLICY: {"success_action_redirect": "http://123458.com"},

En HTML: <input type="text" name="success_action_redirect" value="http://123458.com"/>

No

x-obs-meta-*

Indica metadatos definidos por el usuario. Al crear un objeto, puede usar este encabezado o un encabezado que comience con x-obs-meta- para definir metadatos de objeto en una solicitud HTTP. Los metadatos definidos por el usuario se devolverán en la respuesta cuando recupere el objeto o consulte los metadatos del objeto. Para obtener más información, consulte Metadatos de objetos definidos por el usuario.

Tipo: string

Ejemplos:

En POLICY: {" x-obs-meta-test ": " test metadata " },

En HTML: <input type="text" name=" x-obs-meta-test " value=" test metadatos " />

No

x-obs-persistent-headers

Al crear un objeto, puede agregar el encabezado x-obs-persistent-headers en una solicitud HTTP para especificar uno o más encabezados de respuesta definidos por el usuario. Los encabezados de respuesta definidos por el usuario se devolverán en el encabezado de respuesta cuando recupere el objeto o consulte los metadatos del objeto.

Tipo: string

Formato: x-obs-persistent-headers: key1:base64_encode(value1),key2:base64_encode(value2)...

Nota: Los elementos, como key1 y key2, son encabezados definidos por el usuario. Si contienen caracteres no ASCII o irreconocibles, se pueden codificar mediante URL o Base64. El servidor procesa estos encabezados como cadenas de caracteres, pero no los decodifica. Los elementos, tales como value1 y value2, son los valores de las cabeceras correspondientes. base64_encode indica que el valor se codifica usando Base64. Un encabezado definido por el usuario y su valor codificado en Base64 se conectan usando dos puntos (:) para formar un par clave-valor. Todos los pares clave-valor se separan con una coma (,) y se colocan en el encabezado x-obs-persistent-headers. A continuación, el servidor decodifica el valor cargado.

Ejemplos:

En POLICY: {"x-obs-persistent-headers": "key1:dmFsdWUx,key2:dmFsdWUy" },

En HTML: <input type="text" name="x-obs-persistent-headers" value="key1:dmFsdWUx,key2:dmFsdWUy" />

El encabezado devuelto para descargar el objeto u obtener los metadatos del objeto es key1:value1 o key2:value2 respectivamente.

Restricciones:

  1. Los encabezados de respuesta personalizados de esta manera no pueden tener el prefijo x-obs-. Por ejemplo, debes usar key1 en lugar de x-obs-key1 en lugar de hacerlo.
  2. Los encabezados de HTTP estándar, como host, content-md5, origin, range y Content-Disposition no se pueden especificar como los encabezados personalizados.
  3. La longitud total de este encabezado y los metadatos personalizados no puede superar los 8 KB.
  4. Si se pasan las mismas claves, los valores se separan con comas (,) y luego se devuelven en una clave.
  5. Si el valor decodificado contiene caracteres no US-ASCII o irreconocibles, el servidor procesa el valor como una cadena y lo encapsula usando ?UTF-8?B?<(str)>?= pero no decodifica el valor. Por ejemplo, el valor key1:abbc se devolverá como key1: =?UTF-8?B?abbc?=.
  6. Los valores no pueden contener espacios, signos iguales (=), comas (,), punto y coma (;), dos puntos (:) o puntos (.). Si estos caracteres son necesarios, utilice la codificación URL o Base64.

No

success_action_status

Indica el código de estado devuelto después de recibir correctamente la solicitud. Los valores posibles son 200, 201 y 204.

  • Si este parámetro se establece en 200 o 204, el cuerpo en el mensaje de respuesta OBS está vacío.
  • Si este parámetro se establece en 201, el mensaje de respuesta OBS contiene un documento XML que describe la respuesta a la solicitud.
  • Si la solicitud no incluye este parámetro o el valor del parámetro no es válido, OBS devuelve el código de estado 204.

Tipo: string

Ejemplos:

En POLICY: ["starts-with","$success_action_status", ""],

En HTML: <input type="text" name="success_action_status" value="200" />

No

x-obs-website-redirect-location

Si un bucket está configurado con la función de alojamiento de sitios web estático, redirigirá las solicitudes para este objeto a otro objeto en el mismo bucket o a una URL externa. OBS almacena el valor de este encabezado en los metadatos del objeto.

Valor predeterminado: ninguno

Restricción: el valor debe tener el prefijo de una barra diagonal (/), http://, o https://. La longitud del valor no puede superar los 2 KB.

No

x-obs-server-side-encryption

Indica que se utiliza SSE-KMS.

Tipo: string

Ejemplo: x-obs-server-side-encryption:kms

No. Este encabezado es necesario cuando se utiliza SSE-KMS.

x-obs-server-side-encryption-kms-key-id

Indica la clave principal cuando se utiliza SSE-KMS. Si no se proporciona este encabezado, se utilizará la clave principal predeterminada. Si no existe una clave principal por defecto, OBS creará una y la usará por defecto.

Tipo: string

Se admiten los dos formatos siguientes:

- regionID:domainID:key/key_id

2. key_id

regionID indica el ID de la región a la que pertenece la clave. domainID indica el ID del tenant al que pertenece la clave. key_id indica el ID de la clave creada en DEW.

Ejemplos:

- x-obs-server-side-encryption-kms-key-id: region:domainiddomainiddomainiddoma0001:key/4f1cd4de-ab64-4807-920a-47fc42e7f0d0

- x-obs-server-side-encryption-kms-key-id:4f1cd4de-ab64-4807-920a-47fc42e7f0d0

No

x-obs-server-side-encryption-customer-algorithm

Indica el algoritmo de encriptación cuando se utiliza SSE-C.

Tipo: string

Ejemplo: x-obs-server-side-encryption-customer-algorithm:AES256

Restricción: Este encabezado debe usarse junto con x-obs-server-side-encryption-customer-key y x-obs-server-side-encryption-customer-key-MD5.

No. Este encabezado se requiere cuando se utiliza SSE-C.

x-obs-server-side-encryption-customer-key

Indica la clave para cifrar objetos cuando se utiliza SSE-C.

Tipo: string

Ejemplo: x-obs-server-side-encryption-customer-key:K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw=

Restricción: Este encabezado es una clave de 256 bits codificada en Base64 y debe usarse junto con x-obs-server-side-encryption-customer-algorithm y x-obs-server-side-encryption-customer-key-MD5.

No. Este encabezado se requiere cuando se utiliza SSE-C.

x-obs-server-side-encryption-customer-key-MD5

Indica el valor MD5 de la clave de encriptación cuando se utiliza SSE-C. El valor MD5 se utiliza para comprobar si se produce algún error durante la transmisión de la clave.

Tipo: string

Ejemplo: x-obs-server-side-encryption-customer-key-MD5:4XvB3tbNTN+tIEVa0/fGaQ==

Restricción: Este encabezado es un valor MD5 de 128 bits codificado en Base64 y debe usarse junto con x-obs-server-side-encryption-customer-algorithm y x-obs-server-side-encryption-customer-key.

No. Este encabezado se requiere cuando se utiliza SSE-C.

x-obs-expires

Especifica cuándo caduca un objeto. Se mide en días. Una vez que el objeto caduca, se elimina automáticamente. (El cálculo comienza a partir de la última modificación del objeto).

Tipo: integer

Ejemplo: x-obs-expires:3

No

x-obs-object-lock-mode

Modo de WORM que se aplicará al objeto. Actualmente, solo se admite COMPLIANCE. Este encabezado debe usarse junto con x-obs-object-lock-retain-until-date.

Tipo: string

Ejemplo: x-obs-object-lock-mode:COMPLIANCE

No, pero es necesario cuando x-obs-object-lock-retain-until-date está presente.

x-obs-object-lock-retain-until-date

Indica el tiempo de caducidad de la retención de Object Lock. El valor debe ser una hora UTC que cumpla con la norma ISO 8601, por ejemplo 2015-07-01T04:11:15Z. Este encabezado debe usarse junto con x-obs-object-lock-mode.

Tipo: string

Ejemplo: x-obs-object-lock-retain-until-date:2015-07-01T04:11:15Z

No, pero es necesario cuando x-obs-object-lock-mode está presente.

Sintaxis de respuesta

1
2
3
4
5
HTTP/1.1 status_code
Content-Type: application/xml 
Location: location
Date: date
ETag: etag

Encabezados de respuesta

La respuesta a la solicitud utiliza encabezados comunes. Para más detalles, consulte Tabla 1.

Además de los encabezados de respuesta comunes, los encabezados de mensaje enumerados en Tabla 3 puede ser usado.

Tabla 3 Encabezados de respuesta adicionales

Encabezado

Descripción

x-obs-version-id

ID de versión del objeto. Si el control de versiones está habilitado para el bucket, se devolverá el ID de versión del objeto. Se devolverá una string null si el bucket que contiene el objeto tiene suspendido el control de versiones.

Tipo: string

Access-Control-Allow-Origin

Indica que el origen se incluye en la respuesta si el origen de la solicitud cumple los requisitos de configuración de CORS cuando CORS está configurado para los bucket.

Tipo: string

Access-Control-Allow-Headers

Indica que los encabezados se incluyen en la respuesta si los encabezados de la solicitud cumplen los requisitos de configuración de CORS cuando CORS está configurado para los bucket.

Tipo: string

Access-Control-Max-Age

Indica MaxAgeSeconds en la configuración CORS del servidor cuando CORS está configurado para bucket.

Tipo: integer

Access-Control-Allow-Methods

Indica que los métodos de la regla se incluyen en la respuesta si Access-Control-Request-Method en la solicitud cumple los requisitos de configuración de CORS cuando CORS está configurado para los bucket.

Tipo: string

Opciones de valor: GET, PUT, HEAD, POST, DELETE

Access-Control-Expose-Headers

Valor de ExposeHeader en la configuración de CORS de un servidor cuando CORS está configurado para los bucket.

Tipo: string

x-obs-server-side-encryption

Este encabezado se incluye en una respuesta si se utiliza SSE-KMS.

Tipo: string

Ejemplo: x-obs-server-side-encryption:kms

x-obs-server-side-encryption-kms-key-id

Indica el ID de clave principal. Este encabezado se incluye en una respuesta cuando se usa SSE-KMS.

Tipo: string

Formato: regionID:domainID:key/key_id

regionID indica el ID de la región a la que pertenece la clave. domainID indica el ID del tenant al que pertenece la clave. key_id indica el ID de clave utilizado en esta encriptación.

Ejemplo: x-obs-server-side-encryption-kms-key-id:region:domainiddomainiddomainiddoma0001:key/4f1cd4de-ab64-4807-920a-47fc42e7f0d0

x-obs-server-side-encryption-customer-algorithm

Indica el algoritmo de encriptación. Este encabezado se incluye en una respuesta cuando se usa SSE-C.

Tipo: string

Ejemplo: x-obs-server-side-encryption-customer-algorithm:AES256

x-obs-server-side-encryption-customer-key-MD5

Indica el valor MD5 de la clave para cifrar objetos. Este encabezado se incluye en una respuesta cuando se usa SSE-C.

Tipo: string

Ejemplo: x-obs-server-side-encryption-customer-key-MD5:4XvB3tbNTN+tIEVa0/fGaQ==

Elementos de respuesta

Esta respuesta no contiene elementos.

Respuestas de error

No se devuelven respuestas de error especiales. Para obtener más información sobre las respuestas de error, consulte Tabla 2.

Ejemplo de solicitud: Carga de un objeto usando POST

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
POST / HTTP/1.1
Date: WED, 01 Jul 2015 04:15:23 GMT
Host: examplebucket.obs.region.myhuaweicloud.com
Content-Type: multipart/form-data; boundary=7db143f50da2
Content-Length: 2424
Origin: www.example.com
Access-Control-Request-Headers:acc_header_1

--7db143f50da2
Content-Disposition: form-data; name="key"

object01
--7db143f50da2
Content-Disposition: form-data; name="acl"

public-read
--7db143f50da2 
Content-Disposition: form-data; name="content-type"

text/plain
--7db143f50da2
Content-Disposition: form-data; name="expires"

WED, 01 Jul 2015 04:16:15 GMT
--7db143f50da2
Content-Disposition: form-data; name="AccessKeyId"

14RZT432N80TGDF2Y2G2
--7db143f50da2
Content-Disposition: form-data; name="policy"

ew0KICAiZXhaaXJhdGlvbiI6ICIyMDE1LTA3LTAxVDEyOjAwOjAwLjAwMFoiLA0KICAiY29uZGl0aW9ucyI6IFsNCiAgICB7ImJ1Y2tldCI6ICJleG1hcGxlYnVja2V0IiB9LA0KICAgIHsiYWNsIjogInB1YmxpYy1yZWFkIiB9LA0KICAgIHsiRXhaaXJlcyI6ICIxMDAwIiB9LA0KICAgIFsiZXEiLCAiJGtleSIsICJvYmplY3QwMSJdLA0KICAgIFsic3RhcnRzLXdpdGgiLCAiJENvbnRlbnQtVHlwZSIsICJ0ZXh0LyJdLA0KICBdDQp9DQo=
--7db143f50da2
Content-Disposition: form-data; name="signature"

Vk6rwO0Nq09BLhvNSIYwSJTRQ+k=
--7db143f50da2
Content-Disposition: form-data; name="x-obs-persistent-headers"
test:dmFsdWUx
--7db143f50da2
Content-Disposition: form-data; name="x-obs-grant-read"
id=52f24s3593as5730ea4f722483579xxx
--7db143f50da2
Content-Disposition: form-data; name="x-obs-server-side-encryption"
kms
--7db143f50da2
Content-Disposition: form-data; name="x-obs-website-redirect-location"
http://www.example.com/
--7db143f50da2
Content-Disposition: form-data; name="file"; filename="C:\Testtools\UpLoadFiles\object\1024Bytes.txt"
Content-Type: text/plain

01234567890
--7db143f50da2
Content-Disposition: form-data; name="submit"

Upload
--7db143f50da2--

Ejemplo de respuesta: Carga de un objeto mediante POST

Después de configurar CORS para un bucket, la respuesta contiene la información de Access-Control-*.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
HTTP/1.1 204 No Content
x-obs-request-id: 90E2BA00C26C00000133B442A90063FD
x-obs-id-2: OTBFMkJBMDBDMjZDMDAwMDAxMzNCNDQyQTkwMDYzRkRBQUFBQUFBQWJiYmJiYmJi
Access-Control-Allow-Origin: www.example.com
Access-Control-Allow-Methods: POST,GET,HEAD,PUT
Access-Control-Allow-Headers: acc_header_01
Access-Control-Max-Age: 100
Access-Control-Expose-Headers: exp_header_01
Content-Type: text/xml
Location: http://examplebucket.obs.region.myhuaweicloud.com/object01
Date: WED, 01 Jul 2015 04:15:23 GMT
ETag: "ab7abb0da4bca5323ab6119bb5dcd296"

Ejemplo de solicitud: Carga de un objeto (con x-obs-acl y una clase de almacenamiento especificada)

Subir un objeto con los campos de encabezado x-obs-acl, clase de almacenamiento y redirección incluidos en el mensaje de solicitud.

Antes de codificar, el contenido de la política es el siguiente:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{
    "expiration":"2018-07-17T04:54:35Z",
    "conditions":[
        {
            "content-type":"text/plain"
        },
        {
            "x-obs-storage-class":"WARM"
        },
        {
            "success_action_redirect":"http://www.example.com"
        },
        {
            "x-obs-acl":"public-read"
        },
        [
            "starts-with",
            "$bucket",
            ""
        ],
        [
            "starts-with",
            "$key",
            ""
        ]
    ]
}

Muestra de solicitud:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
POST / HTTP/1.1
Host: examplebucket.obs.region.myhuaweicloud.comAccept-Encoding: identity
Content-Length: 947
Content-Type: multipart/form-data; boundary=9431149156168
User-Agent: OBS/Test

--9431149156168
Content-Disposition: form-data; name="x-obs-acl"

public-read
--9431149156168
Content-Disposition: form-data; name="AccessKeyId"

H4IPJX0TQTHTHEBQQCEC
--9431149156168
Content-Disposition: form-data; name="key"

my-obs-object-key-demo
--9431149156168
Content-Disposition: form-data; name="signature"

WNwv8P1ZiWdqPQqjXeLmAfzPDAI=
--9431149156168
Content-Disposition: form-data; name="policy"

eyJleHBpcmF0aW9uIjoiMjAxOC0wNy0xN1QwODozNDoyM1oiLCAiY29uZGl0aW9ucyI6W3siY29udGVudC10eXBlIjoidGV4dC9wbGFpbiJ9LHsieC1vYnMtYWNsIjoicHVibGljLXJlYWQifSxbInN0YXJ0cy13aXRoIiwgIiRidWNrZXQiLCAiIl0sWyJzdGFydHMtd2l0aCIsICIka2V5IiwgIiJdXX0=
--9431149156168
Content-Disposition: form-data; name="content-type"

text/plain
--9431149156168
Content-Disposition: form-data; name="file"; filename="myfile"
Content-Type: text/plain

c2c6cd0f-898e-11e8-aab6-e567c91fb541
52b8e8a0-8481-4696-96f3-910635215a78

--9431149156168--

Ejemplo de respuesta: Carga de un objeto (con x-obs-acl y una clase de almacenamiento especificada)

1
2
3
4
5
6
7
HTTP/1.1 204 No Content
Server: OBS
Location: http://examplebucket.obs.region.myhuaweicloud.com/my-obs-object-key-demo
ETag: "17a83fc8d431273405bd266114b7e034"
x-obs-request-id: 5DEB00000164A728A7C7F4E032214CFA
x-obs-id-2: 32AAAUJAIAABAAAQAAEAABAAAQAAEAABCSwj2PcBE0YcoLHUDO7GSj+rVByzjflA
Date: Tue, 17 Jul 2018 07:33:36 GMT

Ejemplo de solicitud: Uso de un token para la autenticación

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
POST / HTTP/1.1
Content-Type:multipart/form-data; boundary=9431149156168
Content-Length: 634
Host: examplebucket.obs.region.myhuaweicloud.com
--9431149156168
Content-Disposition: form-data; name="key"
obj01
--9431149156168
Content-Disposition: form-data; name="token"
UDSIAMSTUBTEST002538:XsVcTzR2/A284oE4VH9qPndGcuE=:eyJjb25kaXRpb25zIjogW3siYnVja2V0IjogInRlc3QzMDAzMDU4NzE2NjI2ODkzNjcuMTIifSwgeyJDb250ZW50LVR5cGUiOiAiYXBwbGljYXRpb24veG1sIn0sIFsiZXEiLCAiJGtleSIsICJvYmoudHh0Il1dLCAiZXhwaXJhdGlvbiI6ICIyMDIyLTA5LTA5VDEyOjA5OjI3WiJ9
--9431149156168
Content-Disposition: form-data; name="file"; filename="myfile"
Content-Type: text/plain
01234567890
--9431149156168--
Content-Disposition: form-data; name="submit"
Upload to OBS

Ejemplo de respuesta: Uso de un token para la autenticación

1
2
3
4
5
6
7
HTTP/1.1 204 No Content
Server: OBS
Location: http://examplebucket.obs.region.myhuaweicloud.com/my-obs-object-key-demo
ETag: "7eda50a430fed940023acb9c4c6a2fff"
x-obs-request-id: 000001832010443D80F30B649B969C47
x-obs-id-2: 32AAAUgAIAABAAAQAAEAABAAAQAAEAABCTj0yO9KJd5In+i9pzTgCDVG9vMnk7O/
Date: Fri,09Sep 2022 02: 24:40 GMT

Ejemplo de solicitud: Especificación del tiempo de expiración de un objeto

POST / HTTP/1.1 
Date: WED, 01 Jul 2015 04:15:23 GMT 
Host: examplebucket.obs.cn-north-4..com 
Content-Type: multipart/form-data; boundary=148828969260233905620870
Content-Length: 1639 
Origin: www.example.com 
Access-Control-Request-Headers:acc_header_1 
--148828969260233905620870 
Content-Disposition: form-data; name="key" 
object01
--148828969260233905620870
Content-Disposition: form-data; name="AwsAccessKeyId"
55445349414d5354554254455354303030303033
--148828969260233905620870
Content-Disposition: form-data; name="signature"
396246666f6f42793872792f7a3958524f6c44334e4e69763950553d--7db143f50da2 
--148828969260233905620870
Content-Disposition: form-data; name="policy" 
65794a6c65484270636d463061573975496a6f694d6a41794d7930774e6930784e565178...
--148828969260233905620870
Content-Disposition: form-data; name="x-obs-expires"
4
--148828969260233905620870
Content-Disposition: form-data; name="file"; filename="test.txt"
Content-Type: text/plain 
01234567890
--148828969260233905620870
Content-Disposition: form-data; name="submit" 
Upload 
--148828969260233905620870--

Ejemplo de respuesta: Especificación del tiempo de expiración de un objeto

HTTP/1.1 204 No Content 
Server: OBS 
Date: Thu, 15 Jun 2023 12:39:03 GMT
Connection: keep-alive
Location: http://examplebucket.obs.cn-north-4..com/my-obs-object-key-demo 
x-obs-expiration: expiry-date="Tue, 20 Jun 2023 00:00:00 GMT"
ETag: "d41d8cd98f00b204e9800998ecf8427e"
x-obs-request-id: 00000188BF11049553064911000FC30D
x-obs-id-2: 32AAAUJAIAABAAAQAAEAABAAAQAAEAABCSwj2PcBE0YcoLHUDO7GSj+rVByzjflA 
x-forward-status: 0x40020000000001
x-dae-api-type: REST.POST.OBJECT

Ejemplo de solicitud: Especificación de un código de estado

Establezca el código de estado de una acción correcta en 200.

POST /srcbucket HTTP/1.1
User-Agent: PostmanRuntime/7.26.8
Accept: */*
Postman-Token: 667dcc44-1c48-41ba-9e41-9f87d8975089
Host: obs.cn-north-4..com
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Type: multipart/form-data; boundary=--------------------------285613759795901770404350
Content-Length: 1134
----------------------------285613759795901770404350
Content-Disposition: form-data; name="key"
obj
----------------------------285613759795901770404350
Content-Disposition: form-data; name="AwsAccessKeyId"
XXXXXXXXXXXXXXX000003
----------------------------285613759795901770404350
Content-Disposition: form-data; name="signature"
9rc4bVhDPQ7eHtw17hWtYxLnBWU=
----------------------------285613759795901770404350
Content-Disposition: form-data; name="policy"
eyJleHBpcmF0aW9uIjoiMjAyMy0wNi0xNVQxNDoxMTozNFoiLCAiY29uZGl0aW9ucyI6W3siYnVja2V0Ijoic3JjYnVja2V0MiJ9LHsic3VjY2Vzc19hY3Rpb25fc3RhdHVzIjoiMjAwIn0seyJjb250ZW50LXR5cGUiOiJ0ZXh0L3BsYWluIn0seyJrZXkiOiIzMzMifSxdfQ==
----------------------------285613759795901770404350
Content-Disposition: form-data; name="success_action_status"
200
----------------------------285613759795901770404350
Content-Disposition: form-data; name="file"; filename="test.txt"
Content-Type: text/plain
----------------------------285613759795901770404350
Content-Disposition: form-data; name="submit"
Upload to OBS
----------------------------285613759795901770404350--

Sample Response: Specifying a Status Code

Respuesta a la configuración de éxito código de estado 200

HTTP/1.1 200 OK
Server: OBS
Date: Thu, 15 Jun 2023 13:12:51 GMT
Content-Length: 0
Connection: keep-alive
Location: http://obs.cn-north-4..com/srcbucket/obj
ETag: "d41d8cd98f00b204e9800998ecf8427e"
x-obs-request-id: 00000188BF2FF55F5306426E000FE366
x-obs-id-2: 32AAAUJAIAABAAAQAAEAABAAAQAAEAABCScDjcXgZ7oMYSVnZnk4+HrClVwLVPTi
x-forward-status: 0x40020000000001
x-dae-api-type: REST.POST.OBJECT

Ejemplo de solicitud: Configuración de una política de retención de WORM al cargar un objeto

POST /srcbucket HTTP/1.1
User-Agent: PostmanRuntime/7.26.8
Accept: */*
Postman-Token: 4c2f4c7e-2e0b-46c0-b1a7-4a5da560b6a1
Host: obs.cn-north-4..com
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Type: multipart/form-data; boundary=--------------------------940435396775653808840608
Content-Length: 1409
----------------------------940435396775653808840608
Content-Disposition: form-data; name="key"
obj
----------------------------940435396775653808840608
Content-Disposition: form-data; name="AwsAccessKeyId"
XXXXXXXXXXXXXXX000003
----------------------------940435396775653808840608
Content-Disposition: form-data; name="signature"
X/7QiyMYUvxUWk0R5fToeTcgMMU=
----------------------------940435396775653808840608
Content-Disposition: form-data; name="policy"
eyJleHBpcmF0aW9uIjoiMjAyMy0wNi0xNVQxNDoyMjo1MVoiLCAiY29uZGl0aW9ucyI6W3sieC1vYnMtb2JqZWN0LWxvY2stcmV0YWluLXVudGlsLWRhdGUiOiJUaHUsIDIwIEp1biAyMDIzIDEzOjEyOjUxIEdNVCJ9LHsieC1vYnMtb2JqZWN0LWxvY2stbW9kZSI6IkNPTVBMSUFOQ0UifSx7ImJ1Y2tldCI6InNyY2J1Y2tldDIifSx7ImNvbnRlbnQtdHlwZSI6InRleHQvcGxhaW4ifSx7ImtleSI6IjMzMyJ9LF19
----------------------------940435396775653808840608
Content-Disposition: form-data; name="x-obs-object-lock-mode"
COMPLIANCE
----------------------------940435396775653808840608
Content-Disposition: form-data; name="x-obs-object-lock-retain-until-date"
Thu, 20 Jun 2023 13:12:51 GMT
----------------------------940435396775653808840608
Content-Disposition: form-data; name="file"; filename="test.txt"
Content-Type: text/plain
----------------------------940435396775653808840608
Content-Disposition: form-data; name="submit"
Upload to OBS
----------------------------940435396775653808840608--

Ejemplo de respuesta: Configuración de una política de retención de WORM al cargar un objeto

HTTP/1.1 204 No Content
Server: OBS
Date: Thu, 15 Jun 2023 13:24:03 GMT
Connection: keep-alive
Location: http://obs.cn-north-4..com/srcbucket/obj
ETag: "d41d8cd98f00b204e9800998ecf8427e"
x-obs-request-id: 00000188BF3A36EE5306427D000FEE0A
x-obs-id-2: 32AAAUJAIAABAAAQAAEAABAAAQAAEAABCS/5pj0p0hAQcDVI3B6E5y167zy4eAQv
x-forward-status: 0x40020000000001
x-dae-api-type: REST.POST.OBJECT