Formats d'URI de stockage d'objet cloud

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 la sécurité des communications. Les URI que vous indiquez doivent utiliser HTTPS, avec https:// comme préfixe de l'URI.

Format d'URI natif Oracle Cloud Infrastructure Object Storage

Remarques :

Autonomous Database prend en charge les buckets de stockage de niveau standard uniquement. Il ne prend pas en charge les buckets de stockage de niveau archive.

Si vos fichiers source 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 adresses dédiées Object Storage. Pour plus d'informations, reportez-vous à Adresses dédiées Object Storage.

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

Remarques :

Les URL d'adresse dédiées de banque d'objets OCI sont uniquement prises en charge dans les domaines commerciaux (OC1) et disponibles dans les versions 19.24 et supérieures.

Si les fichiers source résident sur 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 bucket bucketname du centre de données Phoenix est le suivant :

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 de stockage d'objet Oracle Cloud Infrastructure et bucketname est le nom du bucket. Pour plus d'informations, reportez-vous à Présentation des espaces de noms Object Storage.

L'URI se trouve dans les détails d'objet d'Oracle Cloud Infrastructure Object Storage dans le menu représenté par trois points à droite dans la banque d'objets :

  1. Ouvrez la console Oracle Cloud Infrastructure en cliquant sur icône de navigation en regard d'Oracle Cloud.
  2. Dans le menu de navigation de gauche d'Oracle Cloud Infrastructure, cliquez sur Infrastructure de base. Sous Object Storage, cliquez sur Object Storage.
  3. Sous Champ d'application de la liste, sélectionnez un compartiment.
  4. Dans la colonne Nom, sélectionnez un bucket.
  5. Dans la zone Objets, cliquez sur Visualiser les détails d'objet.
  6. Sur la page Détails d'objet, le champ Chemin d'URL (URI) affiche l'URI permettant d'accéder à l'objet.

Format d'URI Swift Oracle Cloud Infrastructure Object Storage

Si vos fichiers source 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 adresses dédiées Object Storage. Pour plus d'informations, reportez-vous à Adresses dédiées Object Storage.

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

Remarques :

Les URL d'adresse dédiées de banque d'objets OCI sont uniquement prises en charge dans les domaines commerciaux (OC1) et disponibles dans les versions 19.24 et supérieures.

Si les fichiers source résident sur 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 bucket bucketname du centre de données Phoenix est le suivant :

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 de stockage d'objet Oracle Cloud Infrastructure et bucketname est le nom du bucket. Pour plus d'informations, reportez-vous à Présentation des espaces de noms Object Storage.

Remarques :

Les fichiers source doivent être stockés dans un bucket de niveau Object Storage. Autonomous Database ne prend pas en charge les buckets de niveau Archive Storage. Pour plus d'informations, reportez-vous à Présentation d'Object Storage.

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

Si les fichiers source résident sur Oracle Cloud Infrastructure Object Storage, vous pouvez utiliser des URI préauthentifiés 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, à vos partenaires ou à des tiers pour leur permettre d'accéder à la cible de ressource Object Storage identifiée dans la demande préauthentifiée.

Remarques :

Évaluez soigneusement les besoins de l'entreprise et les implications de sécurité concernant l'accès préauthentifié. Lorsque vous créez l'URL de demande préauthentifiée, prenez note de l'expiration et du type d'accès afin de vous assurer qu'ils sont adaptés à votre utilisation.

Une URL de demande préauthentifiée fournit à toute personne disposant de l'URL un accès aux cibles identifiées dans la demande tant que celle-ci est active. En plus de prendre en compte les besoins opérationnels de l'accès préauthentifié, il est tout aussi important de gérer sa distribution.

Si vos fichiers source 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 adresses dédiées Object Storage. Pour plus d'informations, reportez-vous à Adresses dédiées Object Storage.

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

Remarques :

Les URL d'adresse dédiées de banque d'objets OCI sont uniquement prises en charge dans les domaines commerciaux (OC1) et disponibles dans les versions 19.24 et supérieures.

Si les fichiers source résident sur 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), voici un exemple d'URI préauthentifié pour le fichier channels.txt dans le bucket bucketname du centre de données Phoenix :

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 de stockage d'objet Oracle Cloud Infrastructure et bucketname est le nom du bucket. Pour plus d'informations, reportez-vous à Présentation des espaces de noms Object Storage.

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 dans la banque d'objets Oracle Cloud Infrastructure, sans avoir à créer d'informations d'identification. Vous devez définir le paramètre credential_name sur NULL ou ne pas indiquer de paramètre credential_name.

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

Remarques :

Une liste d'URL mixtes est valide. Si la liste d'URL contient des URL préauthentifiées et des URL qui nécessitent une authentification, DBMS_CLOUD utilise la valeur credential_name indiquée pour accéder aux URL qui nécessitent une authentification. Pour les URL préauthentifiées, la valeur credential_name indiquée est ignorée.

Pour plus d'informations, reportez-vous à Utilisation de demandes pré-authentifiées.

Format d'URI Amazon S3

Si les fichiers source résident dans Amazon S3, reportez-vous à Accès à un bucket pour obtenir une description du format d'URI permettant d'accéder à vos fichiers.

L'exemple suivant fait référence au fichier channels.txt dans le bucket 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 n'importe quelle procédure DBMS_CLOUD qui utilise une URL pour accéder aux fichiers dans la banque d'objets d'Amazon S3, sans avoir à créer d'informations d'identification. Pour utiliser une URL présignée dans une procédure DBMS_CLOUD, définissez le paramètre credential_name sur NULL ou n'indiquez pas de paramètre credential_name.

Pour plus d'informations, reportez-vous à Partage d'un objet avec d'autres utilisateurs.

Remarques :

DBMS_CLOUD prend en charge la syntaxe d'adresse Amazon S3 standard pour accéder aux buckets. DBMS_CLOUD ne prend pas en charge les adresses héritées d'Amazon S3. Pour plus d'informations, reportez-vous à Points de terminaison hérités.

Format d'URI Azure Blob Storage

Si les fichiers source résident dans Azure Blob Storage, reportez-vous à Syntaxe d'URI de ressource pour obtenir une description du format d'URI permettant d'accéder à vos fichiers.

L'exemple suivant 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

Remarques :

Vous pouvez utiliser l'URL des signatures d'accès partagé dans n'importe quelle procédure DBMS_CLOUD qui utilise une URL pour accéder aux fichiers dans Azure Blob Storage, sans avoir à créer d'informations d'identification. Pour utiliser une URL avec signature d'accès partagé, définissez le paramètre credential_name sur NULL ou n'indiquez pas de paramètre credential_name.

Pour plus d'informations, reportez-vous à Accorder un accès limité aux ressources du Stockage Azure à l'aide des signatures d'accès partagé (SAP).

Format d'URI compatible avec Amazon S3

DBMS_CLOUD prend en charge les implémentations de service de stockage d'objet qui prennent en charge les URL compatibles avec Amazon S3, y compris les services suivants :

  • Oracle Cloud Infrastructure Object Storage 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

Remarques :

Pour utiliser DBMS_CLOUD avec une banque d'objets compatible avec Amazon S3, vous devez fournir des informations d'identification valides. Pour plus d'informations, reportez-vous à Procédure CREATE_CREDENTIAL.

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

  • Oracle Cloud Infrastructure Object Storage - URL compatible avec S3

    Si vos fichiers source 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 bucket répertoriés ci-dessous pour le domaine commercial (OC1). Pour plus d'informations, reportez-vous à Adresses dédiées Object Storage.

    Remarques :

    Les URL d'adresse dédiées de banque d'objets OCI sont uniquement prises en charge dans les domaines commerciaux (OC1) et disponibles dans les versions 19.24 et supérieures.

    Formats d'URL d'objet

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

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

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

    Formats d'URL de bucket :

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

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

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

    Pour plus d'informations, reportez-vous à API de compatibilité Amazon S3 et à API du service Object Storage.

  • URL compatible avec Google Cloud Storage S3

    Format d'URL d'objet :

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

    Format d'URL de bucket :

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

    Pour plus d'informations, reportez-vous à Effectuer une migration complète depuis Amazon S3 vers Cloud Storage et à Points de terminaison de requêtes.

  • Wasabi S3 URL compatible

    Format d'URL d'objet :

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

    Format d'URL de bucket :

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

    Pour plus d'informations, reportez-vous à Référence d'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

Outre le fichier 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 adresses gérées par le client URIs. Dans ces cas, DBMS_CLOUD s'appuie sur le modèle URI approprié pour identifier le modèle d'authentification de l'adresse gérée par le client.
Modèle d'URI Type d'authentification Description de la méthode d'accès Exemple d'URI
basic :// Authentification de base Le nom utilisateur et le mot de passe stockés dans l'objet d'informations d'identification de base de données sont utilisés pour authentifier la demande HTTP basic://api.github.com/users/myaccount
bearer :// Authentification par jeton de support Le jeton de porteur stocké dans le champ de mot de passe de l'objet d'informations d'identification de base de données est utilisé pour indiquer l'en-tête d'autorisation de la demande HTTP bearer://api.sendgrid.com/v3/resource
oci :// natif d'OCI Clé de signature OCI obtenue à partir de l'objet d'informations 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:// Amazon Web Services compatible avec S3 Clé d'accès et clé secrète obtenues à partir du champ nom utilisateur/mot de passe de l'objet d'informations d'identification de base de données, et authentification compatible S3 effectuée pour la demande HTTP. s3://bucket.myprivatesite.com/file1.csv

Exemples :

Adresse gérée par le client à l'aide de l'authentification compatible 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 du package DBMS_NETWORK_ACL_ADMIN. Le bloc de code, exécuté par l'utilisateur ADMIN, active l'accès HTTPS pour l'utilisateur SCOTT aux adresses dans le domaine *.myprivatesite.com. Il montre ensuite comment l'utilisateur SCOTT accède à l'adresse nouvellement activée. Les informations d'identification MY_CRED de 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;
/

Adresse gérée par le client avec accès public

Cet exemple montre comment inscrire 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 que l'hôte fournisse 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;
/