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 2022-11-07 GMT+08:00

Descripción general del objeto

Un objeto es la unidad básica de almacenamiento de datos en OBS. Consiste en los datos y metadatos de un objeto, los cuales describen los atributos del mismo. Los datos cargados en OBS se almacenan como objetos en buckets.

Un objeto consta de datos, metadatos y una clave.
  • Una clave especifica el nombre de un objeto. Una clave de objeto es una cadena UTF-8 que tiene entre 0 y 1024 caracteres. Cada objeto se identifica de forma única dentro de un bucket mediante una clave.
  • Metadatos: Especifican la descripción del objeto. Los metadatos incluyen los metadatos del sistema y los metadatos personalizados. Los metadatos se cargan en OBS como pares clave-valor.
    • Los metadatos del sistema son generados automáticamente por OBS y se utilizan para procesar datos de objetos, como la fecha, la longitud del contenido, la última modificación y el contenido MD5.
    • Puede especificar metadatos personalizados para describir el objeto al cargarlo en OBS.
  • Datos: se refiere al contenido que contiene el objeto.

Por lo general, los objetos se gestionan como archivos. Sin embargo, OBS es un servicio de almacenamiento basado en objetos y no existe un concepto de archivos y carpetas. Para una fácil gestión de datos, OBS proporciona un método para simular carpetas. Al agregar una barra diagonal (/) en un nombre de objeto, por ejemplo, test/123.jpg, puede simular test como una carpeta y 123.jpg como el nombre de un archivo bajo la carpeta test. Sin embargo, la clave del objeto sigue siendo test/123.jpg.

Al cargar un objeto, puede establecer una clase de almacenamiento para el objeto. Si no se especifica ninguna clase de almacenamiento, la clase de almacenamiento de objetos mantiene la misma que la del bucket. También puede cambiar la clase de almacenamiento de un objeto existente en un bucket.

Usted puede Carga de un objeto en ¿Cómo usar esta función? según sus hábitos y escenarios de servicio. A continuación, OBS almacena los archivos como objetos en el bucket. En OBS, los bucket se encuentran en diferentes regiones. Independientemente del método que utilice, puede acceder al mismo bucket y sus recursos en la misma región.

Directrices sobre la asignación de nombres de claves de objetos

Aunque se puede utilizar cualquier carácter UTF-8 en un nombre de clave de objeto, nombrar las claves de objeto de acuerdo con las siguientes directrices puede ayudar a maximizar la compatibilidad de las claves de objeto con otras aplicaciones. Las formas de analizar caracteres especiales varían según las aplicaciones. Las siguientes directrices ayudan a que los nombres de claves de objeto cumplan considerablemente los requisitos de DNS, caracteres de seguridad web, analizadores XML y otras API.

Los siguientes conjuntos de caracteres se pueden utilizar de forma segura en los nombres de clave.

Caracteres alfanuméricos (también conocidos como caracteres no reservados)

[0-9a-zA-Z]

Caracteres especiales (también conocidos como caracteres reservados)

Signo de exclamación (!)

Guion (-)

Guion bajo (_)

Punto (.)

Asterisco (*)

Comillas simples (')

Soporte izquierdo "("

Soporte derecho ")"

Los siguientes son ejemplos de nombres de clave de objeto válidos:

4my-organization 
my.great_photos-2014/jan/myvacation.jpg 
videos/2014/birthday/video1.wmv

Codificación porcentual de caracteres reservados

Si un carácter reservado tiene un significado especial (conocido como propósito reservado) en un URI y el carácter debe usarse para otros propósitos en el URI, este carácter debe estar codificado porcentualmente. Utilice UTF-8 para codificar caracteres que no sean ASCII. De lo contrario, los nombres de los objetos que se suben a OBS pueden ser diferentes de lo que se espera. Por ejemplo, si el carácter reservado "/" se utiliza como delimitador de componentes de ruta en un URI, el carácter tiene un significado especial (separando un nombre de bucket de un nombre de objeto). Si se utiliza "/" en un componente de la ruta de acceso en un URI, use tres caracteres "%2F" o "%2f" para reemplazar a "/".

Caracteres que pueden requerir un procesamiento especial

Caracteres que requieren codificación en un nombre de clave

  • Ampersandia (&)
  • Signo de dólar ($)
  • Punto y coma (;)
  • Dos puntos (:)
  • La OBS decodifica los signos más (+) en un URI de solicitud en espacios. Si un nombre de clave de objeto original contiene signos más (+), debe codificarse en %2B antes de colocarse en el URI de solicitud.
  • Espacio: En algunos casos se puede perder un gran número de espacios consecutivos.
  • Señal de igualdad (=)
  • Arroba (@)
  • Coma (,)
  • Signo de interrogación (?)
  • Caracteres ASCII: 00-1F en forma hexadecimal (0-31 en forma decimal) y 7F (127 en forma decimal)

Evite utilizar los siguientes caracteres en los nombres de clave, ya que estos caracteres requieren mucho procesamiento especial para mantener la coherencia en todas las aplicaciones.

  • Barra diagonal inversa (\)
  • Corchete izquierdo ({)
  • Caracteres ASCII no imprimibles (128-255 caracteres decimales)
  • Símbolo de insertar(^)
  • Corchete derecho ({)
  • Porcentaje de caracteres (%)
  • Acento/Untick (`)
  • Paréntesis cuadrado derecho (])
  • Comillas
  • Signo de mayor que (>)
  • Paréntesis cuadrado izquierdo ([)
  • La Línea de la Concepción (~)
  • Signo de menos que (<)
  • Hashtag (#)
  • Barra vertical (|)

Tenga en cuenta que OBS adopta una estructura plana, donde se crean los bucket y se almacenan objetos en los bucket. No hay sub-bucket o sub-carpetas en la estructura. Sin embargo, puede usar prefijos de nombre de clave y delimitadores para deducir la estructura lógica como lo hace la consola de OBS. El concepto de carpeta está disponible en la consola de OBS. Suponga que su bucket (companybucket) contiene cuatro objetos con las siguientes claves de objeto:

  • bucket-log/log01.txt
  • cgvbs/test1.txt
  • 2015-10-14_111756.png
  • test1.txt

La Consola OBS utiliza el prefijo del nombre de la clave (bucket-log/ y cgvbs/) y el separador (/) para mostrar la estructura de carpetas, como se muestra en la siguiente figura.

Las claves 2015-10-14_111756.png y key test1.txt no tienen prefijos. Por lo tanto, los objetos aparecen en el nivel raíz del bucket. Si abre la carpeta cgvbs/, verá que contiene el objeto test1.txt.

Suponga que su bucket (companybucket) contiene dos objetos con las siguientes claves de objeto:

  • obj
  • 1/../obj

Si llama a una API (por ejemplo, usando el SDK) para obtener los objetos, puede obtenerlos correctamente. Si accede a los objetos desde la consola, el objeto obj se devolverá en función de la relación relativa. Debido a que ../ tiene una semántica especial en un URI, evite usarlo en claves de objeto.