Formats d'URI DBMS_CLOUD

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 indiquez doit utiliser HTTPS, avec https:// comme préfixe pour l'URI.

Format d'URI natif d'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.objectstorage.region.oci.customer-oci.com/n/namespace-string/b/bucketname/o/filename
Remarque

Les URL d'adresse dédiées de la banque d'objets OCI sont uniquement prises en charge dans les domaines commerciaux (OC1).

Si vos 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 :

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 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 fournir un URI avec des variables d'espace réservé prédéfinies. Lorsque la demande est envoyée, ces variables sont résolues de manière transparente et remplacées par les valeurs réelles correspondantes. Voici la liste des espaces réservés pris en charge dans les sous-programmes de package DBMS_CLOUD :
  • my$home_region : indique la région d'origine de la location Oracle Cloud Infrastructure (OCI).

    La variable de substitution my$home_region est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

  • my$region : indique la région Oracle Cloud Infrastructure (OCI) de votre instance Autonomous Database.

    La variable de substitution my$region est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

    • Jeton d'authentification/informations d'identification Swift

  • my$cloud_domain : indique le nom de domaine Oracle Cloud Infrastructure (OCI) pour votre instance Oracle Cloud Infrastructure (OCI).

    La variable de substitution my$cloud_domain est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

    • Jeton d'authentification/informations d'identification Swift

  • my$namespace : indique l'espace de noms Oracle Cloud Infrastructure (OCI) Object Storage.

    La variable de substitution my$namespace est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

  • my$compartment : indique l'OCID du compartiment.

    La variable de substitution my$compartment est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

    • Jeton d'authentification/informations d'identification Swift

  • my$tenancy : indique l'OCID de votre location.

    La variable de substitution my$tenancy est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

    • Jeton d'authentification/informations d'identification Swift

Par exemple :
object_uri => 'https://objectstorage.my$region.my$cloud_domain/n/my$namespace/b/bucket_name/o/file_name'

Vous pouvez trouver l'URI dans les détails d'objet d'Oracle Cloud Infrastructure Object Storage dans le menu de points de suspension de droite de 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 Portée de la liste, sélectionnez un compartiment.
  4. Dans la colonne Nom, sélectionnez un bucket.
  5. Dans la zone Objets, cliquez sur Afficher les détails de l'objet.
  6. Sur la page Détails de l'objet, le champ Chemin d'URL (URI) affiche l'URI permettant d'accéder à l'objet.
Remarque

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

Format d'URI Swift d'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
Remarque

Les URL d'adresse dédiées de la banque d'objets OCI sont uniquement prises en charge dans les domaines commerciaux (OC1).

Si vos 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 :

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

Remarque

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

L'URI que vous fournissez peut également contenir des variables de réserve prédéfinies. Lorsque la demande est envoyée, ces variables sont remplacées par les valeurs réelles correspondantes. Voici la liste des espaces réservés pris en charge dans Autonomous Database :
  • my$home_region : indique la région d'origine de la location Oracle Cloud Infrastructure (OCI).

    La variable de substitution my$home_region est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

  • my$region : indique la région Oracle Cloud Infrastructure (OCI) de votre instance Autonomous Database.

    La variable de substitution my$region est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

    • Jeton d'authentification/informations d'identification Swift

  • my$cloud_domain : indique le nom de domaine Oracle Cloud Infrastructure (OCI) pour votre instance Oracle Cloud Infrastructure (OCI).

    La variable de substitution my$cloud_domain est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

    • Jeton d'authentification/informations d'identification Swift

  • my$namespace : indique l'espace de noms Oracle Cloud Infrastructure (OCI) Object Storage.

    La variable de substitution my$namespace est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

  • my$compartment : indique l'OCID du compartiment.

    La variable de substitution my$compartment est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

    • Jeton d'authentification/informations d'identification Swift

  • my$tenancy : indique l'OCID de votre location.

    La variable de substitution my$tenancy est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

    • Jeton d'authentification/informations d'identification Swift

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

Si vos fichiers source résident dans 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, de vos partenaires ou de tiers pour accéder à la cible de ressource Object Storage identifiée dans la demande pré-authentifiée.

Remarque

Évaluez soigneusement les besoins de l'entreprise et les conséquences de l'accès pré-authentifié sur la sécurité. Lorsque vous créez l'URL de demande pré-authentifiée, notez l'expiration et le type d'accès pour vous assurer qu'ils sont adaptés à votre utilisation.

L'URL d'une demande pré-authentifiée fournit aux personnes disposant de l'URL un accès aux cibles identifiées dans la demande tant que celle-ci 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 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
Remarque

Les URL d'adresse dédiées de la banque d'objets OCI sont uniquement prises en charge dans les domaines commerciaux (OC1).

Si vos 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), un exemple d'URI pré-authentifié pour le fichier channels.txt dans le bucket bucketname du centre de données Phoenix est le suivant :

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 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 de la banque d'objets Oracle Cloud Infrastructure, sans avoir à créer d'informations d'identification. Vous devez indiquer 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;
/
Remarque

La liste des 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 le paramètre credential_name spécifié pour accéder aux URL nécessitant une authentification et pour les URL pré-authentifiées, le paramètre credential_name spécifié est ignoré.

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

Vous pouvez fournir un URI avec des variables d'espace réservé prédéfinies. Lorsque la demande est envoyée, ces variables sont remplacées par les valeurs réelles correspondantes. Voici la liste des espaces réservés pris en charge dans les sous-programmes de package DBMS_CLOUD :
  • my$home_region : indique la région d'origine de la location Oracle Cloud Infrastructure (OCI).

    La variable de substitution my$home_region est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

  • my$region : indique la région Oracle Cloud Infrastructure (OCI) de votre instance Autonomous Database.

    La variable de substitution my$region est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

    • Jeton d'authentification/informations d'identification Swift

  • my$cloud_domain : indique le nom de domaine Oracle Cloud Infrastructure (OCI) pour votre instance Oracle Cloud Infrastructure (OCI).

    La variable de substitution my$cloud_domain est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

    • Jeton d'authentification/informations d'identification Swift

  • my$namespace : indique l'espace de noms Oracle Cloud Infrastructure (OCI) Object Storage.

    La variable de substitution my$namespace est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

  • my$compartment : indique l'OCID du compartiment.

    La variable de substitution my$compartment est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

    • Jeton d'authentification/informations d'identification Swift

  • my$tenancy : indique l'OCID de votre location.

    La variable de substitution my$tenancy est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

    • Jeton d'authentification/informations d'identification Swift

Par exemple :
object_uri => 'https://objectstorage.my$region.my$cloud_domain/n/my$namespace/b/bucket_name/o/file_name'

Format d'URI utilisant une URL publique

Si vos fichiers source résident dans une banque d'objets qui fournit des URL publiques, vous pouvez utiliser des URL publiques avec des procédures DBMS_CLOUD. Public signifie que le service Object Storage prend en charge l'accès anonyme et non authentifié aux fichiers de la banque d'objets. Pour plus de détails sur la manière de rendre un objet public dans une banque d'objets prise en charge, reportez-vous à votre service Cloud Object Storage.

Remarque

Evaluez soigneusement les exigences métier et les conséquences de l'utilisation d'URL publiques sur la sécurité. Lorsque vous utilisez des URL publiques, car le contenu du fichier n'est pas authentifié, assurez-vous que cela est approprié pour votre utilisation.

Vous pouvez utiliser une URL publique dans n'importe quelle procédure DBMS_CLOUD qui utilise une URL pour accéder aux fichiers de votre banque d'objets, sans avoir à créer d'informations d'identification. Vous devez indiquer le paramètre credential_name en tant que NULL ou ne pas fournir de paramètre credential_name.

Par exemple, la commande suivante utilise DBMS_CLOUD.COPY_DATA sans credential_name :

BEGIN
  DBMS_CLOUD.COPY_DATA(
     table_name =>'CHANNELS',
     file_uri_list =>'https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace-string/b/bucketname/o/chan_v3.dat',
     format => json_object('delimiter' value ',') );
END;
/

Dans cet exemple, namespace-string est l'espace de noms 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.

Remarque

La liste des URL mixtes est valide. Si la liste d'URL contient à la fois des URL publiques et des URL nécessitant une authentification, DBMS_CLOUD utilise l'élément credential_name spécifié pour accéder aux URL nécessitant une authentification et, pour les URL publiques, l'élément credential_name spécifié est ignoré.

Pour plus d'informations sur l'utilisation des buckets publics Oracle Cloud Infrastructure, reportez-vous à Buckets publics.

Vous pouvez fournir un URI avec des variables d'espace réservé prédéfinies. Lorsque la demande est envoyée, ces variables sont remplacées par les valeurs réelles correspondantes. Voici la liste des espaces réservés pris en charge dans les sous-programmes de package DBMS_CLOUD :
  • my$home_region : indique la région d'origine de la location Oracle Cloud Infrastructure (OCI).

    La variable de substitution my$home_region est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

  • my$region : indique la région Oracle Cloud Infrastructure (OCI) de votre instance Autonomous Database.

    La variable de substitution my$region est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

    • Jeton d'authentification/informations d'identification Swift

  • my$cloud_domain : indique le nom de domaine Oracle Cloud Infrastructure (OCI) pour votre instance Oracle Cloud Infrastructure (OCI).

    La variable de substitution my$cloud_domain est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

    • Jeton d'authentification/informations d'identification Swift

  • my$namespace : indique l'espace de noms Oracle Cloud Infrastructure (OCI) Object Storage.

    La variable de substitution my$namespace est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

  • my$compartment : indique l'OCID du compartiment.

    La variable de substitution my$compartment est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

    • Jeton d'authentification/informations d'identification Swift

  • my$tenancy : indique l'OCID de votre location.

    La variable de substitution my$tenancy est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

    • Jeton d'authentification/informations d'identification Swift

Par exemple :
object_uri => 'https://objectstorage.my$region.my$cloud_domain/n/my$namespace/b/bucket_name/o/file_name'

Format d'URI Oracle Cloud Infrastructure Object Storage Classic

Si les fichiers source résident dans Oracle Cloud Infrastructure Object Storage Classic, reportez-vous à la page REST pour obtenir la description du format d'URI permettant d'accéder à vos fichiers : A propos des URL REST pour les ressources Oracle Cloud Infrastructure Object Storage Classic.

Variables de substitution dans les URL Oracle Cloud Infrastructure (OCI)

Vous pouvez fournir des variables de substitution prédéfinies dans vos URL Oracle Cloud Infrastructure (OCI) lorsque vous fournissez l'URI du paramètre object_uri pour les procédures et fonctions DBMS_CLOUD.

Ces variables de substitution sont des espaces réservés prédéfinis, tels que my$home_region et my$tenancy, qui sont résolus et remplacés par les valeurs réelles correspondantes en fonction du contexte d'exécution de votre instance Autonomous Database. Les valeurs propres à l'environnement, telles que l'OCID ou l'espace de noms de location, ne sont pas codées en dur, ce qui rend le code SQL dynamique et portable à déployer dans plusieurs régions (pour les API REST OCI).

Les avantages de l'utilisation de variables de substitution dans les URL OCI sont les suivants :

  • Le code SQL est moins sujet aux erreurs car les variables de substitution évitent de fournir des valeurs codées en dur. Ceci est particulièrement utile lorsque vous utilisez des identificateurs longs.

  • Le code SQL est portable et n'est pas propre à une région ou à un environnement. Le même code SQL peut être réutilisé et déployé dans plusieurs régions pour les API REST OCI sans avoir à identifier la région en cours.

  • Le basculement inter-région pour Autonomous Database à l'aide des API REST OCI est pratique et moins sujet aux erreurs.

La liste des espaces réservés pris en charge est la suivante :

  • my$home_region : indique la région d'origine de la location Oracle Cloud Infrastructure (OCI).

    La variable de substitution my$home_region est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

  • my$region : indique la région Oracle Cloud Infrastructure (OCI) de votre instance Autonomous Database.

    La variable de substitution my$region est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

    • Jeton d'authentification/informations d'identification Swift

  • my$cloud_domain : indique le nom de domaine Oracle Cloud Infrastructure (OCI) pour votre instance Oracle Cloud Infrastructure (OCI).

    La variable de substitution my$cloud_domain est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

    • Jeton d'authentification/informations d'identification Swift

  • my$namespace : indique l'espace de noms Oracle Cloud Infrastructure (OCI) Object Storage.

    La variable de substitution my$namespace est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

  • my$compartment : indique l'OCID du compartiment.

    La variable de substitution my$compartment est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

    • Jeton d'authentification/informations d'identification Swift

  • my$tenancy : indique l'OCID de votre location.

    La variable de substitution my$tenancy est uniquement prise en charge avec les types d'informations d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressources OCI

    • Jeton d'authentification/informations d'identification Swift

Exemple d'utilisation de variables de substitution prédéfinies pour accéder à un fichier Object Storage :

SELECT TO_CLOB(DBMS_CLOUD.GET_OBJECT (
    credential_name => credential_name,
    object_uri      => 'https://objectstorage.my$region.my$cloud_domain/n/my$namespace/b/bucket_name/o/file_name'))
FROM DUAL;

Exemple d'utilisation de variables de substitution prédéfinies pour accéder au fichier de rapport de coût OCI :

SELECT TO_CLOB(DBMS_CLOUD.GET_OBJECT (
    credential_name => credential_name,
    object_uri      => 'https://objectstorage.my$home_region.my$cloud_domain/n/namespace-string/b/my$tenancy/o/reports/cost-csv/file_name.csv.gz',
    compression     => DBMS_CLOUD.COMPRESS_GZIP))
FROM DUAL;

Format d'URI Amazon S3

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

Par exemple, les éléments suivants font référence au fichier channels.txt dans le bucket adb de la région us-west-2.

https://s3-us-west-2.amazonaws.com/adb/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 de la banque d'objets Amazon S3, sans avoir à créer d'informations d'identification. Pour utiliser une URL prédéfinie dans une procédure DBMS_CLOUD, indiquez le paramètre credential_name en tant que NULL ou ne fournissez pas de paramètre credential_name.

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

Remarque

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

Format d'URI de stockage Azure Blob ou Azure Data Lake

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

Par exemple, le terme suivant fait référence au fichier channels.txt dans le conteneur adb du compte de stockage adb_user :

https://adb_user.blob.core.windows.net/adb/channels.txt
Remarque

Vous pouvez utiliser une URL SAS (Shared Access Signatures) dans n'importe quelle procédure DBMS_CLOUD qui utilise une URL pour accéder aux fichiers dans Azure Blob Storage ou Azure Data Lake Storage, sans avoir à créer d'informations d'identification. Pour utiliser une URL SAS (Shared Access Signature), indiquez le paramètre credential_name en tant que NULL ou ne fournissez pas de paramètre credential_name.

Pour plus d'informations, reportez-vous à Octroi d'un accès limité aux ressources de stockage Azure à l'aide de signatures d'accès partagé (SAS).

Format d'URI compatible Amazon S3

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

  • URL compatible Oracle Cloud Infrastructure Object Storage avec Amazon S3
  • Google Cloud Storage avec URL compatible Amazon S3
  • Stockage Hot Cloud Wasabi avec URL compatible Amazon S3
Remarque

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

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

  • URL compatible S3 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 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.

    Remarque

    Les URL d'adresse dédiées de la banque d'objets OCI sont uniquement prises en charge dans les domaines commerciaux (OC1).

    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 à Compatibilité Amazon S3 et à API Object Storage Service.

  • URL compatible 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 à Migration d'Amazon S3 vers le stockage cloud et à Demande d'adresses.

  • URL compatible Wasabi S3

    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.

GitHub Format d'URL brut

DBMS_CLOUD prend en charge les URL brutes GitHub pour accéder aux données d'un référentiel GitHub.

Remarque

Pour l'accès DBMS_CLOUD avec les URL brutes GitHub, l'accès au référentiel est limité à la fonctionnalité en lecture seule. Les API DBMS_CLOUD telles que DBMS_CLOUD.PUT_OBJECT qui écrivent des données ne sont pas prises en charge avec les API DBMS_CLOUD sur un référentiel GitHub.

Vous pouvez également utiliser DBMS_CLOUD_REPO.PUT_FILE pour télécharger des données vers un référentiel GitHub.

Utilisez les URL brutes GitHub avec les API DBMS_CLOUD pour accéder aux fichiers source qui résident dans un référentiel GitHub. Lorsque vous accédez à un fichier sur GitHub et que vous cliquez sur le lien Raw, l'URL brute GitHub apparaît. Le domaine raw.githubusercontent.com fournit des versions non traitées des fichiers stockés dans les référentiels GitHub.

Par exemple, utilisez DBMS_CLOUD.GET_OBJECT :

BEGIN
 DBMS_CLOUD.GET_OBJECT(
   credential_name => 'MY_CRED',
   object_uri      => 'https://raw.githubusercontent.com/myaccount/myrepo/master/data-management-library/autonomous-database/adb-loading.csv',
   directory_name  => 'DATA_PUMP_DIR'
  );
END;
/

Par exemple, utilisez DBMS_CLOUD.CREATE_EXTERNAL_TABLE :

BEGIN
  DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
    credential_name => 'MY_CRED',
    table_name      => 'EMPLOYEES_EXT',
    file_uri_list   => 'https://raw.githubusercontent.com/myaccount/myrepo/master/data-management-library/autonomous-database/*.csv',
    column_list     => 'name varchar2(30), gender varchar2(30), salary number',
    format          => JSON_OBJECT('type' value 'csv')
  );
END;
/
SELECT * FROM employees_ext;

Les procédures DBMS_CLOUD qui utilisent une URL pour accéder à un référentiel GitHub ne nécessitent pas d'informations d'identification avec des référentiels GitHub de visibilité publique. Pour utiliser une URL de visibilité publique, vous pouvez indiquer le paramètre credential_name en tant que NULL ou ne pas fournir de paramètre credential_name. Pour plus d'informations, reportez-vous à Définition de la visibilité du référentiel.

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 pour 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 :// L'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 du porteur 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 spécifier l'en-tête d'autorisation de la demande HTTP bearer://api.sendgrid.com/v3/resource
oci :// natif OCI Clé de signature OCI obtenue à partir de l'objet d'informations 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 utilisateur/mot de passe de l'objet d'informations d'identification de base de données et de l'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 fichier 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, permet à HTTPS d'accéder aux adresses de l'utilisateur SCOTT dans le domaine *.myprivatesite.com. Elle indique ensuite comment l'utilisateur SCOTT accède à l'adresse nouvellement activée. Les informations 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;
/

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