Formats d'URI du service de stockage d'objets en nuage

Cet article décrit le format des URI de fichier source dans les opérations avec DBMS_CLOUD. Le format dépend du service de stockage d'objets que vous utilisez. DBMS_CLOUD garantit une communication sécurisée et tout URI que vous spécifiez doit utiliser HTTPS, avec https:// comme préfixe pour l'URI.

Format d'URI natif d'Oracle Cloud Infrastructure Object Storage

Note : Autonomous AI Database ne prend en charge que les seaux de stockage de niveau standard. Elles ne prennent pas en charge les seaux de stockage de niveau archive.

Si vos fichiers sources résident sur Oracle Cloud Infrastructure Object Storage dans le domaine commercial (OC1), il est recommandé d'utiliser le format d'URI suivant qui utilise des points d'extrémité dédiés au stockage d'objets. Pour plus d'informations, voir Points d'extrémité dédiés du service de stockage d'objets.

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

Note : Les URL de point d'extrémité dédié au magasin d'objets OCI ne sont prises en charge que dans les domaines commerciaux (OC1) et disponibles dans la version 19.24 et supérieure.

Si vos fichiers sources résident dans Oracle Cloud Infrastructure Object Storage et ne se trouvent pas dans le domaine commercial (OC1), vous devez utiliser le format suivant :

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

Par exemple, dans le domaine commercial (OC1), l'URI natif du fichier channels.txt dans le seau *bucketname* du centre de données Phoenix est :

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

Dans cet exemple, namespace-string est l'espace de noms du stockage d'objets Oracle Cloud Infrastructure et bucketname est le nom du seau. Pour plus d'informations, voir Présentation des espaces de noms du stockage d'objets.

Vous pouvez trouver l'URI dans le menu de points de suspension de droite d'Oracle Cloud Infrastructure Object Storage "Détails de l'objet" dans le magasin d'objets :

  1. Ouvrez la console Oracle Cloud Infrastructure en cliquant sur icône de navigation à côté d'Oracle Cloud.

  2. Dans le menu de navigation de gauche d'Oracle Cloud Infrastructure, cliquez sur Stockage. Sous Stockage d'objets et stockage d'archives, cliquez sur Seaux.

  3. Sous Portée de la liste, sélectionnez un compartiment.

  4. Cliquez sur le nom d'un seau dans la colonne Nom.

  5. Dans l'onglet Objets, ouvrez Actions et cliquez sur Voir les détails de l'objet pour l'objet qui vous intéresse.

  6. Dans la page Détails de l'objet, le champ Chemin de l'URL (URI) affiche l'URI permettant d'accéder à l'objet.

Format d'URI Swift d'Oracle Cloud Infrastructure Object Storage

Si vos fichiers sources résident sur Oracle Cloud Infrastructure Object Storage dans le domaine commercial (OC1), il est recommandé d'utiliser le format d'URI suivant qui utilise des points d'extrémité dédiés au stockage d'objets. Pour plus d'informations, voir Points d'extrémité dédiés du service de stockage d'objets.

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

Note : Les URL de point d'extrémité dédié au magasin d'objets OCI ne sont prises en charge que dans les domaines commerciaux (OC1) et disponibles dans la version 19.24 et supérieure.

Si vos fichiers sources résident dans Oracle Cloud Infrastructure Object Storage et ne se trouvent pas dans le domaine commercial (OC1), vous devez utiliser le format suivant :

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

Par exemple, dans le domaine commercial (OC1), l'URI Swift pour le fichier channels.txt dans le seau *bucketname* du centre de données Phoenix est :

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

Dans cet exemple, namespace-string est l'espace de noms du stockage d'objets Oracle Cloud Infrastructure et bucketname est le nom du seau. Pour plus d'informations, voir Présentation des espaces de noms du stockage d'objets.

Note : Les fichiers sources doivent être stockés dans un seau de niveau de stockage d'objets. La base de données autonome d'IA ne prend pas en charge les compartiments du niveau de stockage d'archives. Voir Aperçu du stockage d'objets pour plus d'informations.

Format d'URI d'Oracle Cloud Infrastructure Object Storage à l'aide d'une URL de demande préauthentifiée

Si vos fichiers sources résident sur le service Oracle Cloud Infrastructure Object Storage, vous pouvez utiliser les URI préauthentifiés d'Oracle Cloud Infrastructure. Lorsque vous créez une demande préauthentifiée, une URL unique est générée. Vous pouvez ensuite fournir l'URL unique aux utilisateurs de votre organisation, partenaires ou tiers pour accéder à la cible de ressource de stockage d'objets identifiée dans la demande préauthentifiée.

Note : Évaluez avec soin les exigences commerciales et les ramifications de la sécurité de l'accès préauthentifié. Lorsque vous créez l'URL de la demande préauthentifiée, notez l'expiration et le type d'accès pour vous assurer qu'ils sont appropriés pour votre utilisation.

Une URL de demande préauthentifiée permet à toute personne ayant l'URL d'accéder aux cibles identifiées dans la demande tant que la demande est active. En plus de tenir compte des besoins opérationnels de l'accès préauthentifié, il est tout aussi important de gérer sa distribution.

Si vos fichiers sources résident sur Oracle Cloud Infrastructure Object Storage dans le domaine commercial (OC1), il est recommandé d'utiliser le format d'URI suivant qui utilise des points d'extrémité dédiés au stockage d'objets. Pour plus d'informations, voir Points d'extrémité dédiés du service de stockage d'objets.

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

Note : Les URL de point d'extrémité dédié au magasin d'objets OCI ne sont prises en charge que dans les domaines commerciaux (OC1) et disponibles dans la version 19.24 et supérieure.

Si vos fichiers sources résident dans Oracle Cloud Infrastructure Object Storage et ne se trouvent pas dans le domaine commercial (OC1), vous devez utiliser le format suivant :

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

Par exemple, dans le domaine commercial (OC1), un exemple d'URI préauthentifié pour le fichier channels.txt dans le seau bucketname du centre de données Phoenix est :

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

Dans cet exemple, namespace-string est l'espace de noms du stockage d'objets Oracle Cloud Infrastructure et bucketname est le nom du seau. Pour plus d'informations, voir Présentation des espaces de noms du stockage d'objets.

Vous pouvez utiliser une URL préauthentifiée dans n'importe quelle procédure DBMS_CLOUD qui utilise une URL pour accéder aux fichiers du magasin d'objets Oracle Cloud Infrastructure, sans avoir à créer de données d'identification. Vous devez spécifier le paramètre credential_name en tant que NULL ou ne pas fournir de paramètre credential_name.

Par exemple :

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;
/

Note : Une liste d'URL mixtes est valide. Si la liste d'URL contient à la fois des URL préauthentifiées et des URL nécessitant une authentification, DBMS_CLOUD utilise la valeur credential_name spécifiée pour accéder aux URL nécessitant une authentification et, pour les URL préauthentifiées, la valeur credential_name spécifiée est ignorée.

Pour plus d'informations, voir Utilisation des demandes préauthentifiées.

Format d'URI Amazon S3

Si vos fichiers sources résident dans Amazon S3, consultez la description suivante du format d'URI pour accéder à vos fichiers : Accès à un seau.

Par exemple, ce qui suit fait référence au fichier channels.txt dans le seau atpc de la région us-west-2.

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

Vous pouvez utiliser une URL prédéfinie dans n'importe quelle procédure DBMS_CLOUD qui utilise une URL pour accéder aux fichiers du magasin d'objets Amazon S3, sans avoir à créer de données d'identification. Pour utiliser une URL prédéfinie dans une procédure DBMS_CLOUD, spécifiez le paramètre credential_name comme NULL ou n'indiquez pas de paramètre credential_name.

Pour plus d'informations, voir Partager un objet avec d'autres.

Note : DBMS_CLOUD prend en charge la syntaxe de point d'extrémité Amazon S3 standard pour accéder à vos seaux. DBMS_CLOUD ne prend pas en charge les points d'extrémité existants d'Amazon S3. Pour plus d'informations, voir Points d'extrémité existants.

Format d'URI de stockage BLOB Azure

Si vos fichiers sources résident dans le stockage BLOB Azure, voir la description suivante du format d'URI pour accéder à vos fichiers : Syntaxe de l'URI de la ressource.

Par exemple, ce qui suit fait référence au fichier channels.txt dans le conteneur atpc du compte de stockage atpc_user :

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

Note : Vous pouvez utiliser l'URL SAS (S Shared Access Signatures) dans n'importe quelle procédure DBMS_CLOUD qui utilise une URL pour accéder aux fichiers du stockage BLOB Azure, sans avoir à créer de données d'identification. Pour utiliser une URL de signature d'accès partagé (SAS), spécifiez le paramètre credential_name comme NULL ou n'indiquez pas de paramètre credential_name.

Pour plus d'informations, voir Accorder un accès limité aux ressources de stockage Azure à l'aide des signatures d'accès partagé.

Format d'URI compatible Amazon S3

DBMS_CLOUD prend en charge les mises en oeuvre du service de stockage d'objets qui prennent en charge les URL compatibles avec Amazon S3, notamment les services suivants :

Note : Pour utiliser DBMS_CLOUD avec un magasin d'objets compatible Amazon S3, vous devez fournir des données d'identification valides. Pour plus d'informations, voir Procédure CREATE_CREDENTIAL.

Si vos fichiers sources résident sur un service qui prend en charge les URI compatibles avec Amazon S3, utilisez le format d'URI suivant pour accéder à vos fichiers :

Formats d'URI supplémentaires gérés par le client

En plus de URIs préconfiguré et reconnu avec ses noms de domaine complets (FQDNs), DBMS_CLOUD ne peut pas déterminer le modèle d'authentification approprié pour les points d'extrémité gérés par le client URIs. Dans ces cas, DBMS_CLOUD s'appuie sur le modèle URI approprié pour identifier le modèle d'authentification pour le point d'extrémité géré par le client.

Modèle d'URI Type d'authentification Description de la méthode d'accès Exemple d'URI
élémentaire :// Authentification de base Le nom d'utilisateur et le mot de passe stockés dans l'objet de données d'identification de base de données sont utilisés pour authentifier la demande HTTP basic://api.github.com/users/myaccount
porteur :// Authentification par jeton du porteur Le jeton de porteur stocké dans le champ de mot de passe de l'objet de données d'identification de base de données est utilisé pour spécifier l'en-tête d'autorisation de la demande HTTP bearer://api.sendgrid.com/v3/resource
oci :// OCI natif Clé de signature OCI obtenue à partir de l'objet de données d'identification de base de données stocké et utilisé pour signer des demandes à l'aide du protocole d'authentification OCI oci://objectstorage.us-ashburn-1.oraclecloud.com
public :// Aucune authentification URL publiques public://cms.data.gov/
s3 :// Compatible avec Amazon Web Services S3 Clé d'accès et clé secrète obtenues à partir du champ nom d'utilisateur/mot de passe de l'objet de données d'identification de base de données, et authentification compatible S3 effectuée pour la demande HTTP. s3://bucket.myprivatesite.com/file1.csv

Exemples :

Point d'extrémité géré par le client à l'aide de l'authentification compatible S3.

Cet exemple montre comment, pour la nouvelle version de URIs, les clients peuvent ajouter le modèle de nom d'hôte public ou privé à l'aide de l'ensemble DBMS_NETWORK_ACL_ADMIN. Le bloc de code, exécuté par l'utilisateur ADMIN, permet à HTTPS d'accéder aux points d'extrémité du domaine *.myprivatesite.com pour l'utilisateur SCOTT. Il montre ensuite comment l'utilisateur SCOTT accède au point d'extrémité nouvellement activé. Notez que les données d'identification MY_CRED pour l'utilisateur SCOTT doivent stocker la clé d'accès et la clé secrète pour l'authentification compatible S3 effectuée pour la demande HTTP indiquée par le préfixe 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;
/

Point d'extrémité géré par le client avec accès public

Cet exemple montre comment enregistrer l'utilisateur SCOTT pour accéder aux API REST publiques. L'utilisateur ADMIN crée une liste de contrôle d'accès réseau pour l'hôte afin de fournir l'accès à l'utilisateur 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;
/