Creación de nombres de clave de objeto - Amazon Simple Storage Service

Creación de nombres de clave de objeto

La clave de objeto (o nombre de clave) identifica de forma única el objeto en un bucket de Amazon S3. Los metadatos de objetos son un conjunto de pares nombre-​valor. Para obtener más información acerca de los metadatos del objeto, consulte Trabajar con metadatos de objeto.

Al crear un objeto, especifica su nombre de clave, que identifica exclusivamente el objeto en el bucket. Por ejemplo, en la consola de Amazon S3, al destacar un bucket aparece una lista de objetos en el bucket. Esos nombres son las claves de objeto. El nombre de clave de objeto es una secuencia de caracteres Unicode con codificación UTF-8 de una longitud máxima de 1024 bytes. Los nombres de clave de objeto distinguen entre mayúsculas y minúsculas.

nota

Los nombres de clave de objeto con el valor "soap" no son compatibles con las solicitudes de tipo host virtual. Para los valores de los nombres de las claves de los objetos en los que se utiliza "soap", se debe utilizar en su lugar una URL de tipo ruta.

El modelo de datos de Amazon S3 es una estructura plana: usted crea un bucket y el bucket almacena objetos. No existe una jerarquía entre los subbuckets o las subcarpetas. Sin embargo, puede inferir una jerarquía lógica con prefijos de nombres de clave y delimitadores del mismo modo que lo hace la consola de Amazon S3. La consola de Amazon S3 admite el concepto de carpetas. Para obtener más información sobre cómo editar metadatos desde la consola de Amazon S3, consulte Edición de metadatos de objeto en la consola de Amazon S3.

Supongamos que el bucket (admin-created) tiene cuatro objetos con las siguientes claves de objeto:

Development/Projects.xls

Finance/statement1.pdf

Private/taxdocument.pdf

s3-dg.pdf

La consola utiliza los prefijos de nombre de clave (Development/, Finance/ y Private/) y el delimitador (“/”) para presentar una estructura de carpetas. La clave de s3-dg.pdf no tiene un prefix, por lo que su objeto aparece directamente en el nivel raíz del bucket. Si abre la carpeta Development/, verá el objeto Projects.xlsx en ella.

  • Amazon S3 admite buckets y objetos y no hay jerarquía. Sin embargo, si utiliza prefijos y delimitadores en un nombre de clave de objeto, la consola de Amazon S3 y los SDK de AWS pueden inferir la jerarquía e introducir el concepto de carpetas.

  • La consola de Amazon S3 implementa la creación de objetos de carpeta mediante la creación de objetos de cero bytes con el valor de prefijo y delimitador de carpeta como clave. Estos objetos de carpeta no aparecen en la consola. De lo contrario, se comportan como cualquier otro objeto y se pueden ver y manipular a través de la API de REST, la AWS CLI y los SDK de AWS.

Directrices de nomenclatura de claves de objeto

Puede usar cualquier carácter UTF-8 en un nombre de clave de objeto. Sin embargo, el uso de ciertos caracteres en los nombres de las claves puede provocar problemas con algunas aplicaciones y protocolos. Las siguientes directrices le ayudan a aumentar al máximo el cumplimiento con DNS, caracteres seguros para la web, analizadores XML y otras API.

Caracteres seguros

Los siguientes conjuntos de caracteres son habitualmente seguros para su uso en nombres de claves.

Alphanumeric characters
  • 0-9

  • a-z

  • A-Z

Special characters
  • Signo de exclamación (!)

  • Guion (-)

  • Guion bajo (_)

  • Punto (.)

  • Asterisco (*)

  • Comilla simple (')

  • Abrir paréntesis (()

  • Cerrar paréntesis ())

A continuación se proporcionan ejemplos de nombres de claves de objeto válidos:

  • 4my-organization

  • my.great_photos-2014/jan/myvacation.jpg

  • videos/2014/birthday/video1.wmv

nota

En el caso de los objetos con nombres de clave que terminen con punto(s) “.” descargados mediante la consola de Amazon S3, se eliminarán los puntos “.” del nombre de clave del objeto descargado. Para descargar un objeto cuyo nombre de clave termine con punto(s) “.”, debe utilizar la AWS Command Line Interface (AWS CLI), los SDK de AWS o la API de REST.

Además, tenga en cuenta las siguientes limitaciones de prefijo:

  • Los objetos con un prefijo de "./" se deben cargar o descargar con el AWS Command Line Interface (AWS CLI), AWS SDK o la API de REST. No puede usar la consola de Amazon S3.

  • Los objetos con un prefijo de "../" no se pueden cargar usando la herramienta AWS Command Line Interface (AWS CLI) o la consola de Amazon S3.

Caracteres que podrían requerir un trato especial

Los siguientes caracteres de un nombre de clave podrían requerir un trato adicional en cuando a codificación, y probablemente tengan que codificarse en la URL o haya que referirse a ellos en HEX. Algunos de ellos son caracteres no imprimibles que su navegador podría no admitir, por lo que también requieren un trato especial:

  • Ampersand ("&")

  • Dólar ("$")

  • Rangos de caracteres ASCII 00–1F hex (0–31 decimal) y 7F (127 decimal)

  • Arroba ("@")

  • Igual ("=")

  • Punto y coma (";")

  • Barra inclinada ("/")

  • Dos puntos (":")

  • Más ("+")

  • Espacio: puede que se pierdan secuencias significativas de espacios en algunos usos (especialmente espacios múltiples)

  • Coma (",")

  • Signo de cierre de interrogación ("?")

Caracteres que deben evitarse

Evite los siguientes caracteres en un nombre de clave debido a un trato significativamente especial para que sean coherentes en todas las aplicaciones.

  • Barra diagonal invertida ("\")

  • Llave de apertura ("{")

  • Caracteres ASCII no imprimibles (caracteres decimales 128-255)

  • Acento circunflejo ("^")

  • Llave de cierre ("}")

  • Carácter de porcentaje ("%")

  • Acento grave ("`")

  • Corchete de cierre ("]")

  • Comillas

  • Símbolo mayor que (">")

  • Corchete de apertura ("[")

  • Tilde ("~")

  • Símbolo menor que ("<")

  • Almohadilla ("#")

  • Barra vertical ("|")

Según lo especificado por el estándar XML sobre el tratamiento de final de línea, todo el texto XML se normaliza de manera que los retornos de carro único (código ASCII 13) y los retornos de carro seguidos inmediatamente de un salto de línea (código ASCII 10) se sustituyen por un único carácter de salto de línea. Para garantizar el análisis correcto de las claves de objeto en las solicitudes XML, los retornos de carro y otros caracteres especiales deben reemplazarse por su código de entidad XML equivalente cuando se insertan dentro de etiquetas XML. A continuación se muestra una lista de estos caracteres especiales y sus códigos de entidad equivalentes:

  • ' como &apos;

  • ” como &quot;

  • & como &amp;

  • < como &lt;

  • > como &gt;

  • \r como &#13; o &#x0D;

  • \n como &#10; o &#x0A;

En el ejemplo siguiente se ilustra el uso de un código de entidad XML como sustitución de un retorno de carro. Esta solicitud DeleteObjects elimina un objeto con el parámetro key: /some/prefix/objectwith\rcarriagereturn (donde \r es el retorno de carro).

<Delete xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Object> <Key>/some/prefix/objectwith&#13;carriagereturn</Key> </Object> </Delete>