Trabajar con metadatos de objeto - Amazon Simple Storage Service

Trabajar con metadatos de objeto

Puede establecer metadatos de objeto en Amazon S3 en el momento de cargar el objeto. Los metadatos de objetos son un conjunto de pares nombre-​valor. Tras cargar el objeto, no puede modificar sus metadatos. La única manera de modificar los metadatos de un objeto es realizar una copia del mismo y configurar sus metadatos.

Al crear un objeto, también se especifica el nombre de la clave, que identifica de forma única al objeto en el bucket. La clave de objeto (o nombre de clave) identifica de forma única el objeto en un bucket de Amazon S3. Para obtener más información, consulte Creación de nombres de clave de objeto.

Existen dos tipos de metadatos en Amazon S3: metadatos definidos por el sistema y metadatos definidos por el usuario. En las secciones siguientes se proporciona más información acerca de los metadatos definidos por el sistema y definidos por el usuario. Para obtener más información sobre cómo editar metadatos mediante la consola de Amazon S3, consulte Edición de metadatos de objeto en la consola de Amazon S3.

Metadatos de objetos definidos por el sistema

Para cada objeto almacenado en un bucket, Amazon S3 mantiene un conjunto de metadatos del sistema. Amazon S3 procesa estos metadatos del sistema según sea necesario. Por ejemplo, Amazon S3 mantiene la fecha de creación del objeto y los metadatos de tamaño y usa esta información como parte de la administración del objeto.

Existen dos categorías de metadatos del sistema:

  • Controlados por el sistema: los metadatos, como la fecha de creación del objeto, están controlados por el sistema, y solo Amazon S3 puede modificar su valor.

  • Controlados por el usuario: otros metadatos de sistema, como la clase de almacenamiento configurada para el objeto y si el objeto tiene habilitado el cifrado del lado del servidor, son ejemplos de metadatos del sistema cuyos valores controla usted. Si el bucket está configurado como sitio web, a veces puede que quiera redirigir una solicitud de página a otra página o URL externa. En este caso, una página web será un objeto en su bucket. Amazon S3 almacena el valor de redirección de la página como metadatos del sistema cuyo valor controla usted.

    Al crear objetos, puede configurar los valores de estos elementos de metadatos del sistema o actualizar los valores cuando lo necesite. Para obtener más información acerca de las clases de almacenamiento, consulte Uso de las clases de almacenamiento de Amazon S3.

    Amazon S3 utiliza claves de AWS KMS para cifrar sus objetos de Amazon S3. AWS KMS cifra únicamente los datos del objeto. La suma de comprobación, junto con el algoritmo especificado, se almacenan como parte de los metadatos del objeto. Si se solicita el cifrado del lado del servidor para el objeto, la suma de comprobación se almacena de forma cifrada. Para obtener más información acerca del cifrado del lado del servidor, consulte Protección de los datos mediante el cifrado.

nota

El encabezado de las solicitudes PUT está limitado a un tamaño de 8 KB. En el encabezado de la solicitud PUT, los metadatos definidos por el sistema están limitados a un tamaño de 2 KB. El tamaño de los metadatos definidos por el sistema se mide con la suma del número de bytes de la codificación US-ASCII en cada clave y valor.

En la siguiente tabla se facilita una lista de metadatos definidos por el sistema y si puede actualizarlos.

Nombre Descripción ¿El usuario puede modificar el valor?
Date Fecha y hora actuales. No
Cache-Control Campo de encabezado general utilizado para especificar políticas de almacenamiento en caché.
Content-Disposition Información de presentación de objetos.
Content-Length Tamaño del objeto en bytes. No
Content-Type El tipo de objeto.
Last-Modified

Fecha de creación del objeto o última fecha de modificación, la que sea posterior. Para las cargas multiparte, la fecha de creación del objeto es la fecha de inicio de la carga multiparte.

No
ETag Etiqueta de entidad (ETag) que representa una versión específica de un objeto. Para los objetos que no se cargan como una carga multiparte y que no se cifraron o se cifraron mediante el cifrado del lado del servidor con claves administradas de Amazon S3 (SSE-S3), ETag es un resumen MD5 de los datos. No
x-amz-server-side-encryption Encabezado que indica si se ha habilitado el cifrado del lado del servidor para el objeto y si dicho cifrado utiliza las claves de AWS Key Management Service (AWS KMS) (SSE-KMS) o claves de cifrado administrado por Amazon S3 (SSE-S3). Para obtener más información, consulte Protección de los datos con el cifrado del servidor.
x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-sha1, x-amz-checksum-sha256 Encabezados que contienen la suma de comprobación o resumen del objeto. Como mucho, se configurará uno de estos encabezados a la vez, dependiendo del algoritmo de suma de comprobación que se indique a Amazon S3 que utilice. Para obtener más información sobre cómo elegir el algoritmo de suma de comprobación, consulte Comprobación de la integridad de objetos. No
x-amz-version-id Versión del objeto. Si activa el control de versiones en un bucket, Amazon S3 asigna un ID de versión a los objetos que se añades al bucket. Para obtener más información, consulte Usar el control de versiones en buckets de S3. No
x-amz-delete-marker Marcador booleano que indica si el objeto es un marcador de eliminación. Este marcador solo se usa en los buckets que tienen habilitado el control de versiones, No
x-amz-storage-class Clase de almacenamiento utilizada para almacenar el objeto. Para obtener más información, consulte Uso de las clases de almacenamiento de Amazon S3.
x-amz-website-redirect-location Encabezado que redirige las solicitudes del objeto asociado hacia otro objeto del mismo bucket o hacia una URL externa. Para obtener más información, consulte (Opcional) Configuración del redireccionamiento de páginas web.
x-amz-server-side-encryption-aws-kms-key-id Encabezado que indica el ID de la clave KMS de cifrado simétrico AWS KMS que se usó para cifrar el objeto. Este encabezado se usa solo cuando el encabezado x-amz-server-side-encryption está presente y tiene el valor aws:kms.
x-amz-server-side-encryption-customer-algorithm Encabezado que indica si se ha habilitado el cifrado del lado del servidor con claves de cifrado proporcionadas por el cliente (SSE-C). Para obtener más información, consulte Uso de cifrado en el lado del servidor con claves proporcionadas por el cliente (SSE-C).
x-amz-tagging El conjunto de etiquetas del objeto. El conjunto de etiquetas debe codificarse como parámetros de consulta de URL.

Metadatos de objetos definidos por el usuario

Al cargar un objeto, también puede asignar metadatos al objeto. Esta información opcional se facilita como par nombre-valor (clave-valor) al enviar una solicitud PUT o POST para crear el objeto. Cuando se cargan objetos con la API de REST, los nombres opcionales de metadatos definidos por el usuario deben comenzar con “x-amz-meta-” para distinguirlos de otros encabezados HTTP. Al recuperar el objeto con la API de REST, se devuelve este prefijo. Cuando carga objetos con la API SOAP, no es necesario el prefijo. Al recuperar el objeto con la API SOAP, el prefijo se elimina, independientemente de qué API se haya usado para cargar el objeto.

nota

La compatibilidad con SOAP por HTTP está obsoleta, pero SOAP aún se encuentra disponible con HTTPS. Las características nuevas de Amazon S3 no son compatibles con SOAP. En vez de usar SOAP, le recomendamos que utilice la API de REST o los SDK de AWS.

Cuando se recuperan metadatos con la API de REST, Amazon S3 combina encabezados que tengan el mismo nombre (sin tener en cuenta mayúsculas y minúsculas) en una lista delimitada por comas. Si algunos metadatos contienen caracteres no imprimibles, no se devuelven. En su lugar, se devuelve el encabezado x-amz-missing-meta con el número de entradas de metadatos no imprimibles como valor. La acción HeadObject recupera metadatos de un objeto sin devolver el objeto en sí. Esta operación es útil si solo está interesado en los metadatos de un objeto. Para utilizar HEAD, debe tener acceso READ al objeto. Para obtener más información, consulte el tema sobre el objeto Head en la referencia de la API de Amazon Simple Storage Service.

Los metadatos definidos por el usuario son un conjunto de pares clave-valor. Amazon S3 almacena las claves de metadatos definidos por el usuario en minúsculas.

Amazon S3 permite caracteres Unicode arbitrarios en los valores de metadatos.

Para evitar problemas en la presentación de estos valores de metadatos, debe cumplir con el uso de caracteres US-ASCII al utilizar REST y UTF-8 al utilizar SOAP o cargas basadas en navegador a través de POST.

Cuando se utilizan caracteres no US-ASCII en los valores de metadatos, la cadena Unicode proporcionada se examina en busca de caracteres no US-ASCII. Los valores de dichos encabezados se decodifican por caracteres según la RFC 2047 antes de almacenarse y codificarse según la RFC 2047 para que sean seguros para enviarlos por correo antes de devolverlos. Si la cadena contiene solo caracteres US-ASCII, se presenta tal cual.

A continuación, se muestra un ejemplo.

PUT /Key HTTP/1.1 Host: DOC-EXAMPLE-BUCKET1.s3.amazonaws.com x-amz-meta-nonascii: ÄMÄZÕÑ S3 HEAD /Key HTTP/1.1 Host: DOC-EXAMPLE-BUCKET1.s3.amazonaws.com x-amz-meta-nonascii: =?UTF-8?B?w4PChE3Dg8KEWsODwpXDg8KRIFMz?= PUT /Key HTTP/1.1 Host: DOC-EXAMPLE-BUCKET1.s3.amazonaws.com x-amz-meta-ascii: AMAZONS3 HEAD /Key HTTP/1.1 Host: DOC-EXAMPLE-BUCKET1.s3.amazonaws.com x-amz-meta-ascii: AMAZONS3
nota

El encabezado de las solicitudes PUT está limitado a un tamaño de 8 KB. En el encabezado de la solicitud PUT, los metadatos definidos por el usuario están limitados a un tamaño de 2 KB. El tamaño de los metadatos definidos por el usuario se mide sumando el número de bytes de la codificación UTF-8 en cada clave y valor.

Si quiere obtener información para cambiar los metadatos del objeto después de que se haya cargado mediante la creación de una copia del objeto, la modificación y la sustitución del objeto anterior o la creación de una nueva versión, consulte Edición de metadatos de objeto en la consola de Amazon S3.