Formatos de URI de almacenamiento de objetos en la nube

En este artículo se describe el formato de los URI del archivo de origen en operaciones con DBMS_CLOUD. El formato depende del servicio de almacenamiento de objetos que esté utilizando. DBMS_CLOUD garantiza una comunicación segura y cualquier URI que especifique debe utilizar HTTPS, con https:// como prefijo para el URI.

Formato de URI nativo de Oracle Cloud Infrastructure Object Storage

Nota: La base de datos de IA autónoma solo soporta cubos de almacenamiento de nivel estándar. No soporta buckets de almacenamiento de nivel de archivo.

Si los archivos de origen residen en Oracle Cloud Infrastructure Object Storage en el dominio comercial (OC1), se recomienda utilizar el siguiente formato de URI que utiliza puntos finales dedicados de Object Storage. Consulte Puntos finales dedicados de Object Storage para obtener más información.

https://namespace-string.objectstorage.region.oci.customer-oci.com/n/namespace-string/b/bucketname/o/filename

Nota: Las URL de punto final dedicado del almacén de objetos de OCI solo están soportadas en dominios comerciales (OC1) y están disponibles en la versión 19.24 y posteriores.

Si los archivos de origen residen en Oracle Cloud Infrastructure Object Storage y no en el dominio comercial (OC1), debe utilizar el siguiente formato:

https://objectstorage.region.oraclecloud.com/n/namespace-string/b/bucket/o/filename

Por ejemplo, en el dominio comercial (OC1), el URI nativo para el archivo channels.txt en el cubo *bucketname* del centro de datos Phoenix es:

https://namespace.objectstorage.region.oci.customer-oci.com/n/namespace/b/bucketname/o/channels.txt

En este ejemplo, namespace-string es el espacio Oracle Cloud Infrastructure Object Storage Namepace, y bucketname es el nombre del cubo. Consulte Descripción de los espacios de nombres de Object Storage para obtener más información.

Puede encontrar el URI de "Detalles de objeto" de Oracle Cloud Infrastructure Object Storage en el menú de puntos suspensivos de la derecha del almacén de objetos:

  1. Haga clic en icono de navegación junto a Oracle Cloud para abrir la consola de Oracle Cloud Infrastructure.

  2. En el menú de navegación de la izquierda de Oracle Cloud Infrastructure, haga clic en Storage. En Almacenamiento de objetos y de archivo, haga clic en Buckets.

  3. En el ámbito de lista, seleccione un compartimento.

  4. Haga clic en un nombre de cubo en la columna Nombre.

  5. En el separador Objetos, abra Acciones y haga clic en Ver detalles de objeto para el objeto en el que está interesado.

  6. En la página Detalles de objeto, el campo Ruta de acceso de URL (URI) muestra el URI para acceder al objeto.

Formato de URI de Swift de Oracle Cloud Infrastructure Object Storage

Si los archivos de origen residen en Oracle Cloud Infrastructure Object Storage en el dominio comercial (OC1), se recomienda utilizar el siguiente formato de URI que utiliza puntos finales dedicados de Object Storage. Consulte Puntos finales dedicados de Object Storage para obtener más información.

https://namespace-string.swiftobjectstorage.region.oci.customer-oci.com/v1/namespace-string/bucket/filename

Nota: Las URL de punto final dedicado del almacén de objetos de OCI solo están soportadas en dominios comerciales (OC1) y están disponibles en la versión 19.24 y posteriores.

Si los archivos de origen residen en Oracle Cloud Infrastructure Object Storage y no en el dominio comercial (OC1), debe utilizar el siguiente formato:

https://swiftobjectstorage.region.oraclecloud.com/v1/namespace-string/bucket/filename

Por ejemplo, en el dominio comercial (OC1), el URI de Swift para el archivo channels.txt en el cubo *bucketname* del centro de datos Phoenix es:

https://namespace-string.swiftobjectstorage.us-phoenix-1.oci.customer-oci.com/v1/namespace-string/bucketname/channels.txt

En este ejemplo, namespace-string es el espacio Oracle Cloud Infrastructure Object Storage Namepace, y bucketname es el nombre del cubo. Consulte Descripción de los espacios de nombres de Object Storage para obtener más información.

Nota: Los archivos de origen se deben almacenar en un cubo de nivel de Object Storage. La base de datos de IA autónoma no soporta cubos en el nivel de almacenamiento de archivos. Consulte Visión general de Object Storage para obtener más información.

Formato de URI de Oracle Cloud Infrastructure Object Storage mediante URL de solicitud autenticada previamente

Si los archivos de origen residen en Oracle Cloud Infrastructure Object Storage, puede utilizar los URI autenticados previamente de Oracle Cloud Infrastructure. Al crear una solicitud autenticada previamente, se genera una URL única. A continuación, puede proporcionar la URL única a los usuarios de su organización, socios o terceros para acceder al destino de recurso de Object Storage identificado en la solicitud autenticada previamente.

Nota: Evalúe cuidadosamente los requisitos de negocio y las ramificaciones de seguridad del acceso autenticado previamente. Al crear la URL de solicitud autenticada previamente, tenga en cuenta la caducidad y el tipo de acceso para asegurarse de que son adecuados para su uso.

Una URL de solicitud autenticada previamente proporciona acceso de URL a cualquier usuario que tenga acceso de URL a los destinos identificados en la solicitud durante el tiempo que la solicitud esté activa. Además de considerar las necesidades operativas del acceso autenticado previamente, es igualmente importante gestionar su distribución.

Si los archivos de origen residen en Oracle Cloud Infrastructure Object Storage en el dominio comercial (OC1), se recomienda utilizar el siguiente formato de URI que utiliza puntos finales dedicados de Object Storage. Consulte Puntos finales dedicados de Object Storage para obtener más información.

https://namespace-string.objectstorage.region.oci.customer-oci.com/p/encrypted_string/n/namespace-string/b/bucket/o/filename

Nota: Las URL de punto final dedicado del almacén de objetos de OCI solo están soportadas en dominios comerciales (OC1) y están disponibles en la versión 19.24 y posteriores.

Si los archivos de origen residen en Oracle Cloud Infrastructure Object Storage y no en el dominio comercial (OC1), debe utilizar el siguiente formato:

https://objectstorage.region.oraclecloud.com.com/p/encrypted_string/n/namespace-string/b/bucket/o/filename

Por ejemplo, en el dominio comercial (OC1), un URI autenticado previamente de ejemplo para el archivo channels.txt en el cubo bucketname del centro de datos Phoenix es:

https://namespace-string.objectstorage.us-phoenix-1.oci.customer-oci.com/p/2xN-uDtWJNsiD910UCYGue/n/namespace-string/b/bucketname/o/channels.txt

En este ejemplo, namespace-string es el espacio Oracle Cloud Infrastructure Object Storage Namepace, y bucketname es el nombre del cubo. Consulte Descripción de los espacios de nombres de Object Storage para obtener más información.

Puede utilizar una URL autenticada previamente en cualquier procedimiento DBMS_CLOUD que tome una URL para acceder a los archivos del almacén de objetos de Oracle Cloud Infrastructure, sin necesidad de crear una credencial. Debe especificar el parámetro credential_name como NULL o no debe proporcionar un parámetro credential_name.

Por ejemplo:

BEGIN
  DBMS_CLOUD.COPY_DATA(
     table_name =>'CHANNELS',
     file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/p/unique-pre-authenticated-string/n/namespace-string/b/bucketname/o/channels.txt',
     format => json_object('delimiter' value ',') );
END;
/

Nota: Una lista de direcciones URL mixtas es válida. Si la lista de URL contiene tanto URL autenticadas previamente como URL que requieren autenticación, DBMS_CLOUD utiliza el credential_name especificado para acceder a las URL que requieren autenticación y, para las URL autenticadas previamente, se ignora el credential_name especificado.

Consulte Uso de solicitudes autenticadas previamente para obtener más información.

Formato de URI de Amazon S3

Si los archivos de origen residen en Amazon S3, consulte lo siguiente para obtener una descripción del formato de URI para acceder a los archivos: Acceso a un cubo.

Por ejemplo, lo siguiente hace referencia al archivo channels.txt en el cubo atpc de la región us-west-2.

https://s3-us-west-2.amazonaws.com/atpc/channels.txt

Puede utilizar una URL presignada en cualquier procedimiento DBMS_CLOUD que tome una URL para acceder a archivos en el almacén de objetos de Amazon S3, sin necesidad de crear una credencial. Para utilizar una URL presignada en cualquier procedimiento DBMS_CLOUD, especifique el parámetro credential_name como NULL o no proporcione un parámetro credential_name.

Consulte Compartir un objeto con otros para obtener más información.

Nota: DBMS_CLOUD admite la sintaxis de punto final de Amazon S3 estándar para acceder a los cubos. DBMS_CLOUD no admite los puntos finales heredados de Amazon S3. Consulte Puntos finales heredados para obtener más información.

Formato de URI de almacenamiento de bloques de Azure

Si los archivos de origen residen en Azure Blob Storage, consulte lo siguiente para obtener una descripción del formato de URI para acceder a los archivos: Sintaxis de URI de recurso.

Por ejemplo, a continuación se hace referencia al archivo channels.txt en el contenedor atpc de la cuenta de almacenamiento atpc_user:

https://atpc_user.blob.core.windows.net/atpc/channels.txt

Nota: Puede utilizar la URL de firmas de acceso compartido (SAS) en cualquier procedimiento DBMS_CLOUD que tome una URL para acceder a los archivos de Azure Blob Storage, sin necesidad de crear una credencial. Para utilizar una URL de firma de acceso compartido (SAS), especifique el parámetro credential_name como NULL o no proporcione un parámetro credential_name.

Consulte Otorgamiento de acceso limitado a recursos de almacenamiento de Azure mediante firmas de acceso compartido (SAS) para obtener más información.

Formato de URI compatible con Amazon S3

DBMS_CLOUD admite implementaciones de servicios de almacenamiento de objetos que admiten URL compatibles con Amazon S3, incluidos los siguientes servicios:

Nota: Para utilizar DBMS_CLOUD con un almacén de objetos compatible con Amazon S3, debe proporcionar credenciales válidas. Consulte Procedimiento CREATE_CREDENTIAL para obtener más información.

Si los archivos de origen residen en un servicio que admite URI compatibles con Amazon S3, utilice el siguiente formato de URI para acceder a los archivos:

Formatos de URI adicionales gestionados por el cliente

Además del URIs reconocido y preconfigurado con sus nombres de dominio totalmente cualificados (FQDNs), DBMS_CLOUD no puede determinar el esquema de autenticación adecuado para los puntos finales gestionados por el cliente URIs. En esos casos, DBMS_CLOUD se basa en el esquema URI adecuado para identificar el esquema de autenticación para el punto final gestionado por el cliente.

Esquema de URI Tipo de Autenticación Descripción de método de acceso Ejemplo de URI
básico:// Autenticación básica El nombre de usuario y la contraseña almacenados en el objeto de credenciales de la base de datos se utilizan para autenticar la solicitud HTTP basic://api.github.com/users/myaccount
portador:// Autenticación de token del portador El token de portador almacenado en el campo de contraseña del objeto de credencial de base de datos se utiliza para especificar la cabecera de autorización para la solicitud HTTP bearer://api.sendgrid.com/v3/resource
oci:// Nativo de OCI Clave de firma de OCI obtenida del objeto de credencial de base de datos almacenada y utilizada para firmar solicitudes mediante el protocolo de autenticación de OCI oci://objectstorage.us-ashburn-1.oraclecloud.com
público:// Sin autenticación URL públicas public://cms.data.gov/
s3:// Compatible con Amazon Web Services S3 Clave de acceso y clave secreta obtenidos del campo de nombre de usuario/contraseña del objeto de credencial de base de datos y autenticación compatible con S3 realizada para la solicitud HTTP. s3://bucket.myprivatesite.com/file1.csv

Ejemplos:

Punto final gestionado por el cliente mediante autenticación compatible con S3.

En este ejemplo se muestra cómo, para el nuevo URIs, los clientes pueden agregar el patrón de nombre de host público o privado mediante el paquete DBMS_NETWORK_ACL_ADMIN. El bloque de código, ejecutado por el usuario ADMIN, permite el acceso HTTPS para el usuario SCOTT a los puntos finales en el dominio *.myprivatesite.com. A continuación, muestra cómo el usuario SCOTT accede al punto final recién activado. Tenga en cuenta que la credencial MY_CRED para el usuario SCOTT debe almacenar la clave de acceso y la clave secreta para la autenticación compatible con S3 realizada para la solicitud HTTP indicada por el prefijo URI.

BEGIN
   DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
         host => '*.myprivatesite.com',
         ace => xs$ace_type(privilege_list => xs$name_list('http'),
                            principal_name => 'SCOTT',
                            principal_type => xs_acl.ptype_db),
         private_target => TRUE   );
END;
/

BEGIN
   DBMS_CLOUD.get_object(
       credential_name => 'MY_CRED',
       object_uri      => 's3://bucket.myprivatesite.com/file1.csv',
       directory_name  => 'MY_DIR'  );
END;
/

Punto final gestionado por el cliente con acceso público

En este ejemplo se muestra cómo registrar el usuario SCOTT para acceder a las API de REST públicas. El usuario ADMIN crea una ACL de red para que el host proporcione acceso al usuario SCOTT.

BEGIN
   DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
         host => 'data.cms.gov',
         ace => xs$ace_type(privilege_list => xs$name_list('http'),
                            principal_name => 'SCOTT',
                            principal_type => xs_acl.ptype_db)
   );
END;
/

SELECT DBMS_CLOUD.get_response_text(
          DBMS_CLOUD.send_request(
              uri     => 'public://data.cms.gov/provider-data/api/1/datastore/imports/a',
              method  => DBMS_CLOUD.METHOD_GET,
              headers => JSON_OBJECT('Accept' VALUE 'application/json')
          )
       )
   FROM DUAL;
/