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. Las secciones siguientes proporcionan 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 usan esta información como parte de la administración del objeto.

Existen dos categorías de metadatos del sistema:

  1. Los metadatos como la fecha de creación del objeto están controlados por el sistema, y solo Amazon S3 puede modificar el valor.

  2. Otros metadatos de sistema, como la clase de almacenamiento configurada para el objeto o si el objeto tiene habilitado el cifrado en el servidor, son ejemplos de metadatos del sistema cuyos valores controla. 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 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. Los metadatos de los objetos no se cifran. Para obtener más información acerca del cifrado del lado del servidor, consulte Protección de datos mediante 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?
Fecha Fecha y hora actuales. No
Longitud del contenido Tamaño de objeto en bytes. No
Content-Type Tipo de objeto.
Last-Modified

Fecha de creación del objeto o última fecha de modificación, la que sea posterior.

No
Content-MD5 Resumen MD5 de 128 bits del objeto cifrado en base64. No
x-amz-server-side-encryption Indica si se ha habilitado el cifrado del lado del servidor para el objeto y si dicho cifrado se realiza desde AWS Key Management Service (AWS KMS) o desde un cifrado administrado por Amazon S3 (SSE-S3). Para obtener más información, consulte Proteger los datos con el cifrado del lado del servidor.
x-amz-version-id Versión del objeto. Si activa el control de versiones en un bucket, Amazon S3 asigna un número de versión a los objetos que añada a dicho bucket. Para obtener más información, consulte Usar el control de versiones en buckets de S3. No
x-amz-delete-marker En un bucket con control de versiones habilitado, este marcador booleano indica si el objeto es un marcador de eliminación. No
x-amz-storage-class Clase de almacenamiento utilizado 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 Redirige las solicitudes para el objeto asociado a otro objeto en el mismo bucket o 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 Si existe el cifrado x-amz en el servidor y tiene el valor aws:kms, indica el ID de la clave de KMS simétrica de AWS KMS usada para el objeto.
x-amz-server-side-encryption-customer-algorithm Indica si se ha habilitado el cifrado en el servidor con claves de cifrado proporcionadas por el cliente (SSE-C). Para obtener más información, consulte Proteger datos con el cifrado del lado del servidor con claves de cifrado proporcionadas por el cliente (SSE-C).

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 carga objetos con la API de REST, los nombres opcionales de metadatos definidos por el usuario deben comenzar por "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 aún se encuentra disponible con HTTPS. Las nuevas características de Amazon S3 no serán compatibles con 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. Si la cadena contiene solo caracteres US-ASCII, se presenta tal cual. Si la cadena contiene caracteres no US-ASCII, primero se codifica con caracteres usando UTF-8 y luego se codifica en US-ASCII.

A continuación se muestra un ejemplo.

PUT /Key HTTP/1.1 Host: awsexamplebucket1.s3.amazonaws.com x-amz-meta-nonascii: ÄMÄZÕÑ S3 HEAD /Key HTTP/1.1 Host: awsexamplebucket1.s3.amazonaws.com x-amz-meta-nonascii: =?UTF-8?B?w4PChE3Dg8KEWsODwpXDg8KRIFMz?= PUT /Key HTTP/1.1 Host: awsexamplebucket1.s3.amazonaws.com x-amz-meta-ascii: AMAZONS3 HEAD /Key HTTP/1.1 Host: awsexamplebucket1.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.