Objetos de almacenamiento de objetos

Obtenga información sobre cómo manageObject Objetos de almacenamiento, que son archivos o datos no estructurados que puede cargar en un cubo de Object Storage en un compartimento.

En el servicio Object Storage, un objeto es un archivo o datos no estructurados que carga en un cubo de un compartimento dentro de un espacio de nombres de Object Storage. El objeto puede ser cualquier tipo de dato, por ejemplo, archivos multimedia, copias de seguridad de datos, contenido web estático o logs. Puede almacenar objetos de hasta 10 TiB. Los objetos se procesan como una única entidad. No puede editar ni agregar datos a un objeto, pero puede reemplazar todo el objeto.

El almacenamiento de objetos permite el control de versiones de los objetos, lo que crea una copia accesible y descargable de una versión concreta de un objeto que haya cargado en un bloque. El control de versiones de objeto protege los objetos de sobre escritura o eliminación accidental o maliciosa. Para obtener más información, consulte Control de versiones de almacenamiento de objetos.

En estos temas se describe cómo gestionar objetos dentro de un único cubo. Para obtener información sobre cómo copiar un objeto en otro cubo, consulte Copia de objetos.

Tareas de Objeto

Puede realizar las siguientes tareas de objetos de Object Storage:

Puede realizar determinadas tareas en un grupo de objetos a la vez mediante la interfaz de línea de comandos. Consulte Tareas de objetos masivos para obtener más información.

Política de IAM necesaria

Para utilizar Oracle Cloud Infrastructure, un administrador debe otorgarle acceso de seguridad en una política . Este acceso está requerido tanto si está utilizando la consola como la API de REST con un SDK, una CLI u otra herramienta. Si recibe un mensaje que indica que no tiene permiso o no está autorizado, verifique con el administrador el tipo de acceso que tiene y en qué compartimento debe trabajar.

Si no está familiarizado con las políticas, consulte Introducción a las políticas y Políticas comunes.

Para administradores:

  • La política Permitir a los administradores de Object Storage gestionar cubos y objetos permite al grupo especificado realizar todas las acciones con cubos y objetos. Los objetos siempre residen en el mismo compartimento que el cubo.

  • Si necesita escribir una política más restrictiva para los objetos, inspect objects permite mostrar todos los objetos de un cubo y realizar una operación HEAD de un objeto concreto. En comparación, read objects permite descargar el objeto en sí.

  • Para crear políticas más restrictivas que otorguen permisos individuales:

    • OBJECT_VERSION_DELETE es necesario para suprimir versiones de objetos anteriores en su nombre mediante políticas de ciclo de vida.

    • OBJECT_UPDATE_TIER es necesario para cambiar el nivel de almacenamiento de un objeto.

Consulte Detalles de Object Storage, Archive Storage y Data Transfer para obtener más información sobre los permisos de usuario de Object Storage.

Políticas de IAM para objetos

A veces, tener control de acceso a nivel de cubo es insuficiente para sus necesidades de seguridad. En su lugar, se requiere tener un control más granular en un grupo de objetos individual o basado en prefijos o sufijos. Por ejemplo, si forma parte de un grupo autorizado para que un objeto específico obtenga una solicitud de trabajo, necesita una política de IAM de Identity and Access Management que otorgue permiso para esa operación explícitamente.

Las políticas de IAM de nivel de objeto permiten otorgar permisos a objetos y subjuegos específicos de objetos en un cubo de Object Storage. La variable de política de IAM target.object.name ofrece la capacidad de aplicar autorizaciones y permisos a objetos, de forma similar a lo que puede hacer con arrendamientos, compartimentos y cubos. Por ejemplo:

ALLOW GROUP object-authZ-op-group-ost-object TO manage objects IN TENANCY where any {target.object.name = 'ost-object-*', request.operation = 'GetObject'}

Las políticas de IAM a nivel de objeto son especialmente útiles en casos de uso de big data y data lake en los que un solo cubo tiene muchos juegos de datos diferentes y varios equipos o cargas de trabajo acceden a ellos.

Para crear políticas de IAM de nivel de objeto, siga los pasos descritos en Creación de una política. Agregue sentencias de política para IAM a nivel de objeto mediante la siguiente sintaxis:

ALLOW GROUP <group> TO manage objects IN TENANCY where all {target.object.name = '<object-pattern>', target.bucket.name = '<bucket_name>'}

La autorización se evalúa para las políticas de IAM de nivel de objeto cuando llega la solicitud para un objeto en el servidor.

Nota

Necesita permisos para mostrar los cubos de un compartimento y mostrar los objetos de un cubo para mostrar los patrones de objeto o objeto específicos al utilizar la consola. Debe tener permisos READ para acceder a los objetos que se muestran.

Si el nombre de objeto o la ruta de acceso ya se conocen y se accede a ellos mediante la CLI o la API, no necesita estos permisos de acceso de cubo o compartimento.

Nota

Puede que haya un retraso de varios minutos para que las políticas de objeto que aplique entren en vigor. Este retraso se aplica a todas las políticas que cree o actualice que controlan el acceso a los recursos de Object Storage.

También puede actualizar una política existente para incluir permisos de IAM a nivel de objeto. Consulte Actualización de sentencias de una política. Las políticas de IAM de nivel de objeto son compatibles con todas las construcciones de políticas existentes.

Ejemplo 1: permiso de acceso completo a un grupo para una carpeta de un cubo:

ALLOW group test-group TO manage objects IN TENANCY where all {target.bucket.name = 'test-bucket', target.object.name = 'prod/*'} 

Ejemplo 2: permiso de acceso de solo lectura a un grupo para una carpeta de un cubo:

ALLOW group test-group TO manage objects IN TENANCY where all {target.bucket.name = 'test-bucket', target.object.name = 'prod/*', any{request.permission='OBJECT_INSPECT', request.permission='OBJECT_READ'}}

Ejemplo 3: permiso de escritura única (sin sobrescrituras) y acceso de lectura o supresión a un grupo para una carpeta:

ALLOW group test-group TO manage objects IN TENANCY where all {target.bucket.name = 'test-bucket', target.object.name = 'prod/*', any{request.permission='OBJECT_CREATE'}}

Ejemplo 4: permiso de acceso de lectura y escritura a un grupo para una carpeta de un cubo (sin lista ni sobrescritura):

ALLOW group test-group TO manage objects IN TENANCY where all {target.bucket.name = 'test-bucket', target.object.name = 'prod/*', any{request.permission='OBJECT_CREATE', request.permission='OBJECT_READ'}}

Ejemplo 5: permiso de acceso para un usuario específico para un patrón de objeto en un cubo:

ALLOW any-user TO manage objects IN TENANCY where all {target.bucket.name = 'test-bucket', target.object.name = '*.pdf', request.user.id='ocid1.user.oc1..exampleuniqueID'}

Solicitudes autenticadas previamente

Las solicitudes autenticadas previamente permiten a los usuarios acceder a un cubo u objeto sin tener sus propias credenciales. Por ejemplo, puede crear una solicitud que permita a un usuario cargar copias de seguridad en un cubo sin sus propias claves de API. Consulte Solicitudes preautenticadas de Object Storage para obtener más información.

Nombres de objetos

A diferencia de otros recursos, los objetos no tienen identificadores de Oracle Cloud (OCID). En su lugar, los usuarios definen un nombre de objeto cuando cargan un objeto.

Utilice las siguientes directrices al asignar un nombre a un objeto:

  • Utilice entre1 y 1024 caracteres.

  • Los caracteres válidos son letras (mayúsculas o minúsculas), números y caracteres que no sean el salto de línea, el retorno de carro o NULL.

    Importante

    Los nombres de cubos y de objetos distinguen mayúsculas/minúsculas. Object Storage gestiona q3-field-assets.xslx y Q3-Field-Assets.XSLX como objetos independientes.

  • Utilice solo caracteres Unicode para los que la codificación UTF-8 no exceda los 1024 bytes. Los clientes son responsables de los caracteres de codificación de URL.

  • Evite introducir información confidencial.

  • El nombre debe ser único en el cubo. No utilice el nombre de un objeto existente en el cubo al asignar un nombre a un objeto a menos que desee sobrescribir el objeto existente con el contenido del objeto nuevo o con nuevo nombre.

Consejo

Los nombres de objetos pueden incluir uno o más caracteres de barra inclinada (/) en el nombre. Consulte Nomenclatura de objetos mediante prefijos y jerarquías para obtener más información sobre el uso de la barra inclinada en los nombres de objetos para crear jerarquías.

Nomenclatura de objetos mediante prefijos y jerarquías

Dentro de un espacio de nombres de Object Storage, los cubos y los objetos se encuentran en una estructura plana. Sin embargo, puede simular una estructura de directorios agregando una cadena de prefijo que incluya una o más barras inclinadas (/) en un nombre de objeto. De esta forma, puede mostrar un directorio cada vez, lo que resulta útil al navegar por un gran conjunto de objetos.

Por ejemplo:

marathon/finish_line.jpg
marathon/participants/p_21.jpg

Si ha agregado prefijos a los nombres de objeto, puede:

  • Puede usar la CLI o la API para realizar descargas en bloque y supresiones en bloque de todos los objetos en un nivel específico de la jerarquía.

  • Utilice la Consola para mostrar una vista jerárquica de los objetos en carpetas virtuales. En el ejemplo anterior, marathon se mostraría como una carpeta que contiene un objeto llamado finish_line.jpg y participants sería una subcarpeta de marathon, que contiene un objeto denominado p_21.jpg. Puede cargar objetos en bloque en cualquier nivel de la jerarquía y realizar supresiones en bloque de todos los objetos de un cubo o carpeta.

Las operaciones en bloque de un nivel específico de la jerarquía no afectan a los objetos de ningún nivel anterior.

Al asignar un nombre a los objetos, también se pueden utilizar cadenas de prefijo sin un delimitador. Ningún delimitador permitirá operaciones de búsqueda en la Consola y que ciertas operaciones en bloque en la CL o API coincidan en la parte del prefijo del nombre del objeto. Por ejemplo, en los nombres de objetos que aparecen a continuación, la cadena gloves_27_ puede servir como prefijo para la coincidencia al realizar operaciones en bloque.

gloves_27_dark_green.jpg
gloves_27_light_blue.jpg	

Al realizar cargas en bloque con la consola, la CLI o la API, puede anteponer una cadena de prefijo a los nombres de los archivos que está cargando.

Para obtener detalles de cadena de jerarquía y prefijo de una interfaz de gestión concreta, consulte las tareas individuales en Cubos de almacenamiento de objetos.

Cabeceras de respuesta y metadatos opcionales

Al cargar objetos, puede proporcionar cabeceras de respuesta y metadatos definidos por el usuario opcionales. Las cabeceras de respuesta son cabeceras HTTP enviadas desde Object Storage a los clientes de Object Storage cuando se descargan objetos. Los metadatos definidos por el usuario son pares nombre-valor almacenados con un objeto. Puede usar la consola, la API de REST o la CLI para proporcionar estos atributos opcionales.

Importante

No se realiza ninguna validación en las cabeceras de respuesta o en los metadatos que proporciona.

Puede especificar valores para las siguientes cabeceras de respuesta:

  • Content-Disposition

    Define información solo de presentación del objeto. La especificación de valores para esta cabecera no tiene ningún efecto en el comportamiento de Object Storage. Los programas que leen el objeto deciden qué hacer en función del valor proporcionado. Por ejemplo, puede utilizar esta cabecera para permitir a los usuarios descargar objetos con nombres de archivo personalizados en un explorador:

    attachment; filename="fname.ext"

    Consulte https://tools.ietf.org/html/rfc2616#section-19.5.1 para obtener más información.

  • Cache-Control

    Define el comportamiento de almacenamiento en caché del objeto. La especificación de valores para esta cabecera no tiene ningún efecto en el comportamiento de Object Storage. Los programas que leen el objeto deciden qué hacer en función del valor proporcionado. Por ejemplo, puede utilizar esta cabecera para identificar los objetos que requieren restricciones de caché:

    no-cache, no-store

    Consulte https://tools.ietf.org/html/rfc2616#section-14.9 para obtener más información.

Puede especificar metadatos definidos por el usuario con formato de pares nombre-valor. Los nombres de metadatos definidos por el usuario se almacenan y se devuelven a los clientes de Object Storage con el prefijo obligatorio opc-meta-.

Gestión del ciclo de vida de objetos

La gestión del ciclo de vida de objetos permite gestionar automáticamente la supresión de cargas de varias partes sin confirmar, el traslado de objetos a un nivel de almacenamiento diferente y la supresión de recursos soportados en su nombre en un cubo determinado. Estas acciones automatizadas se basan en reglas que define y gestiona. Consulte Gestión de ciclo de vida de objetos de almacenamiento de objetos para obtener más información sobre esta función.

Carga y descarga de varias partes

El servicio Oracle Cloud Infrastructure Object Storage admite la carga y descarga de varias partes de objetos.

Supervisión de recursos

Puede supervisar el estado, la capacidad y el rendimiento de los recursos de Oracle Cloud Infrastructure mediante métricas, alarmas y notificaciones. Para obtener más información, consulte Supervisión y Notificaciones.

Para obtener más información sobre la supervisión de objetos, consulte Métricas de Object Storage.

Creación de automatización de objetos mediante el servicio Events

Puede crear automatización en función de los cambios de estado de los recursos de Oracle Cloud Infrastructure mediante tipos de eventos, reglas y acciones. Para obtener más información, consulte Visión general de Events.