¿Cuál es la longitud máxima de un nombre de archivo en S3?

83

Tal vez soy ciego pero no puedo encontrar, en la documentación de S3, la longitud máxima del nombre de archivo que se puede cargar en S3.

ohe
fuente
6
No tengo idea de por qué esto se cerró como fuera de tema. Es un ajuste perfecto para el formato de preguntas y respuestas.
James McMahon

Respuestas:

107

Como se desprende de la documentación de Amazon ,

Estos nombres son las claves de objeto. El nombre de una clave es una secuencia de caracteres Unicode cuya codificación UTF-8 tiene una longitud máxima de 1024 bytes.

La longitud máxima del nombre de archivo es de 1024 caracteres.

Equipo del navegador S3
fuente
5
Si su idioma representa caracteres Unicode con 16 bits, esto es ((1024 bytes * 8 bits/byte) / 16 bits/character) = 512 characters. Pero, ¿cómo saber qué utilizan?
Ben
11
@Ben Unicode! = UTF-8. UTF-8 es una forma de codificar Unicode en un conjunto de bits. Para caracteres en el conjunto ASCII (7 bits), UTF-8 solo usa 1 byte / 8 bits. Para otros caracteres probablemente usaremos 2 bytes, pero a veces 3 o 4. Por lo tanto, para los nombres de archivo que usan exclusivamente caracteres ASCII, la longitud máxima del nombre de archivo será de 1024 caracteres.
Josh Gallagher
22
Al principio pensé "¡1024 bytes de texto codificado en UTF8! = 1024 caracteres", y luego pensé "ah, sí, pero el máximo sigue siendo 1024 caracteres". Es curioso cómo a veces puedes estar tan ansioso por demostrarle a un extraño que está equivocado en Internet (y cómo casi nunca te das cuenta de que estás equivocado antes de publicar: D)
Romain
@Romain suena bien a primera vista. Pero entonces no se trata solo de LÓGICAMENTE, no. Más allá de esto, la respuesta debería ser útil. Si no tiene en cuenta Unicode! = UTF-8, el lector puede malinterpretarlo creyendo siempre que "keystring" .length () <= 1024, sin considerar la codificación.
Steve
3
Es bastante simple. Si su clave consta únicamente del alfabeto estadounidense (conjunto ASCII), tendrá 1024 caracteres. Si utilizo solo diéresis alemanas como öäü, solo tendré espacio para 512 caracteres, porque están codificados en 2 bytes en UTF-8.
Marc