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:// en tant que préfixe.

Format d'URI natif du service de stockage d'objets pour Oracle Cloud Infrastructure

Note :

Les bases de données autonomes prennent en charge uniquement 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 les points d'extrémité dédiés du stockage d'objets. Pour plus d'informations, voir Points d'extrémité dédiés du 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é du magasin d'objets OCI sont prises en charge uniquement dans les domaines commerciaux (OC1) et disponibles dans les versions 19.24 et supérieures.

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 pour 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.

L'URI est affiché dans les détails de l'objet du service de stockage d'objets pour Oracle Cloud Infrastructure, accessibles à partir du menu d'actions (points de suspension), à droite du 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 d'Oracle Cloud Infrastructure, cliquez sur Infrastructure de base. Sous Service de stockage d'objets, cliquez sur Service de stockage d'objets.
  3. Sous Portée de la liste, sélectionnez un compartiment.
  4. Dans la colonne Nom, sélectionnez un seau.
  5. Dans la zone Objets, cliquez sur Voir les détails de l'objet.
  6. Dans la page Détails de l'objet, le champ Chemin de l'URL affiche l'URI permettant d'accéder à l'objet.

Format d'URI Swift du service de stockage d'objets pour Oracle Cloud Infrastructure

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 les points d'extrémité dédiés du stockage d'objets. Pour plus d'informations, voir Points d'extrémité dédiés du 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é du magasin d'objets OCI sont prises en charge uniquement dans les domaines commerciaux (OC1) et disponibles dans les versions 19.24 et supérieures.

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 du 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 pour 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 du niveau de stockage d'objets. La base de données autonome ne prend pas en charge les seaux du niveau de stockage d'archives. Voir Aperçu du stockage d'objets pour plus d'informations.

Format d'URI du service de stockage d'objets pour Oracle Cloud Infrastructure avec une URL de demande préauthentifiée

Si vos fichiers sources se trouvent dans le service de stockage d'objets pour Oracle Cloud Infrastructure, vous pouvez utiliser des 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 cette URL unique aux utilisateurs de votre organisation, à vos partenaires ou à des tierces parties pour leur permettre d'accéder à la ressource de stockage d'objets cible identifiée dans la demande préauthentifiée.

Note :

Évaluez attentivement les exigences de l'entreprise et les ramifications de sécurité relatives à l'accès préauthentifié. Lorsque vous créez l'URL de la demande préauthentifiée, notez les champs Expiration et 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 qui en dispose d'accéder aux cibles identifiées dans la demande tant que celle-ci est active. Vous devez déterminer le besoin opérationnel de l'accès préauthentifié, et gérer efficacement 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 les points d'extrémité dédiés du stockage d'objets. Pour plus d'informations, voir Points d'extrémité dédiés du 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é du magasin d'objets OCI sont prises en charge uniquement dans les domaines commerciaux (OC1) et disponibles dans les versions 19.24 et supérieures.

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 pour 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 toute procédure DBMS_CLOUD qui utilise une URL pour accéder aux fichiers du magasin d'objets Oracle Cloud Infrastructure, sans avoir à créer des données d'identification. Vous devez spécifier le paramètre credential_name avec la valeur NULL ou ne pas fournir le 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 qui nécessitent une authentification. Pour les URL préauthentifiées, la valeur credential_name spécifiée est ignorée.

Voir Utilisation des demandes préauthentification pour plus d'informations.

Format d'URI Amazon S3

Si vos fichiers sources se trouvent dans Amazon S3, reportez-vous à la section suivante pour plus d'informations sur le format d'URI permettant d'accéder à vos fichiers : Accès à un seau.

L'exemple suivant 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ésignée dans toute procédure DBMS_CLOUD qui utilise une URL pour accéder aux fichiers du magasin d'objets Amazon S3, sans avoir à créer des données d'identification. Pour utiliser une URL présignée dans une procédure DBMS_CLOUD, spécifiez la valeur NULL pour le paramètre credential_name, ou n'indiquez pas le 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é Amazon S3 existants. Voir Points d'extrémité existants pour plus d'informations.

Format d'URI Azure Blob Storage

Si vos fichiers sources se trouvent dans Azure Blob Storage, reportez-vous à la rubrique suivante pour plus d'informations sur le format d'URI permettant d'accéder à vos fichiers : Syntaxe d'URI des ressources.

L'exemple suivant fait référence au fichier channels.txt dans le conteneur atpc dans le compte de stockage atpc_user :

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

Note :

Vous pouvez utiliser une URL de signature d'accès partagé dans toute procédure DBMS_CLOUD qui utilise une URL pour accéder aux fichiers dans Azure Blob Storage, sans avoir à créer des données d'identification. Pour utiliser une URL de signature d'accès partagé, spécifiez le paramètre credential_name avec la valeur NULL ou n'indiquez pas le paramètre credential_name.

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

Format d'URI compatible avec Amazon S3

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

  • Stockage d'objets pour Oracle Cloud Infrastructure avec une URL compatible avec Amazon S3
  • Google Cloud Storage avec une URL compatible avec Amazon S3
  • Wasabi Hot Cloud Storage avec une URL compatible avec Amazon S3

Note :

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

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

  • URL compatible avec Oracle Cloud Infrastructure Object Storage S3

    Si vos fichiers sources résident sur Oracle Cloud Infrastructure Object Storage dans le domaine commercial (OC1), il est recommandé d'utiliser les formats d'URL d'objet et d'URL de seau indiqués ci-dessous pour le domaine commercial (OC1). Pour plus d'informations, voir Points d'extrémité dédiés du stockage d'objets.

    Note :

    Les URL de point d'extrémité dédié du magasin d'objets OCI sont prises en charge uniquement dans les domaines commerciaux (OC1) et disponibles dans les versions 19.24 et supérieures.

    Formats d'URL d'objet

    • Prise en charge uniquement dans le domaine commercial (OC1) :

      https://mynamespace.compat.objectstorage.region.oci.customer-oci.com/bucket_name/object_name
    • Prise en charge dans toutes les zones :

      https://mynamespace.compat.objectstorage.region.oraclecloud.com/bucket_name/object_name

    Formats d'URL de seau :

    • Prise en charge uniquement dans le domaine commercial (OC1) :

      https://mynamespace.compat.objectstorage.region.oci.customer-oci.com/bucket_name
    • Prise en charge dans toutes les zones :

      https://mynamespace.compat.objectstorage.region.oraclecloud.com/bucket_name

    Pour plus d'informations, voir Compatibilité avec Amazon S3 et API du service de stockage d'objets.

  • URL compatible avec Google Cloud Storage S3

    Format d'URL d'objet :

    https://bucketname.storage.googleapis.com/object_name

    Format d'URL de seau :

    https://bucketname.storage.googleapis.com/

    Pour plus d'informations, voir Migration depuis Amazon S3 vers le stockage en nuage et Points d'extrémité de demande.

  • Wasabi S3 - URL compatible

    Format d'URL d'objet :

    https://bucketname.s3.region.wasabisys.com/object_name

    Format d'URL de seau :

    https://bucketname.s3.region.wasabisys.com/

    Pour plus d'informations, voir Informations de référence sur les API Wasabi S3 et URL de service pour les régions de stockage de Wasabi.

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

En plus de URIs préconfiguré et reconnu avec ses noms de domaine entièrement qualifiés (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
de base :// 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 dans l'objet de données d'identification de base de données est utilisé pour spécifier l'en-tête d'autorisation pour la demande HTTP bearer://api.sendgrid.com/v3/resource
oci :/// Natif dans OCI Clé de signature OCI obtenue à partir de l'objet de données d'identification de base de données stocké et utilisé pour signer les 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 avec 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 avec S3.

Cet exemple montre comment pour le nouveau 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 l'accès HTTPS pour l'utilisateur SCOTT aux points d'extrémité du domaine *.myprivatesite.com. Il montre ensuite comment l'utilisateur SCOTT accède au nouveau point d'extrémité 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;
/