URI-Formate für Cloud-Objektspeicher

In diesem Artikel wird das Format der Quelldatei-URIs bei Operationen mit DBMS_CLOUD beschrieben. Das Format ist von dem verwendeten Objektspeicherservice abhängig. DBMS_CLOUD gewährleistet eine sichere Kommunikation, und jeder von Ihnen angegebene URI muss HTTPS mit https:// als Präfix für die URI verwenden.

Natives URI-Format für Oracle Cloud Infrastructure Object Storage

Hinweis:

Autonomous Database unterstützt nur Standard-Tier-Speicher-Buckets. Archive-Tier-Speicher-Buckets werden nicht unterstützt.

Wenn sich Ihre Quelldateien in Oracle Cloud Infrastructure Object Storage in der kommerziellen Realm (OC1) befinden, wird empfohlen, das folgende URI-Format zu verwenden, das dedizierte Object Storage-Endpunkte verwendet. Weitere Informationen finden Sie unter Dedizierte Object Storage-Endpunkte.

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

Hinweis:

Dedizierte Endpunkt-URLs für OCI Object Store werden nur in kommerziellen Realms (OC1) unterstützt und sind ab 19.24 verfügbar.

Wenn sich die Quelldateien in Oracle Cloud Infrastructure Object Storage und nicht in der kommerziellen Realm (OC1) befinden, müssen Sie das folgende Format verwenden:

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

Beispiel: In der kommerziellen Realm (OC1) lautet die native URI für die Datei channels.txt im Bucket bucketname im Data Center Phoenix:

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

In diesem Beispiel ist namespace-string der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.

Sie finden die URI in den Oracle Cloud Infrastructure Object Storage-Objektdetails im Dreipunktemenü auf der rechten Seite im Objektspeicher:

  1. Öffnen Sie die Oracle Cloud Infrastructure-Konsole, indem Sie neben "Oracle Cloud" auf Navigationssymbol klicken.
  2. Klicken Sie im linken Navigationsmenü von Oracle Cloud Infrastructure auf Core-Infrastruktur. Klicken Sie unter Object Storage auf Object Storage.
  3. Wählen Sie unter "Listenbereich" ein Compartment aus.
  4. Wählen Sie in der Spalte Name einen Bucket aus.
  5. Klicken Sie im Bereich "Objekte" auf Objektdetails anzeigen.
  6. Auf der Seite Objektdetails wird im Feld URL-Pfad (URI) die URI für den Zugriff auf das Objekt angezeigt.

SWIFT-URI-Format für Oracle Cloud Infrastructure Object Storage

Wenn sich Ihre Quelldateien in Oracle Cloud Infrastructure Object Storage in der kommerziellen Realm (OC1) befinden, wird empfohlen, das folgende URI-Format zu verwenden, das dedizierte Object Storage-Endpunkte verwendet. Weitere Informationen finden Sie unter Dedizierte Object Storage-Endpunkte.

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

Hinweis:

Dedizierte Endpunkt-URLs für OCI Object Store werden nur in kommerziellen Realms (OC1) unterstützt und sind ab 19.24 verfügbar.

Wenn sich die Quelldateien in Oracle Cloud Infrastructure Object Storage und nicht in der kommerziellen Realm (OC1) befinden, müssen Sie das folgende Format verwenden:

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

Beispiel: In der kommerziellen Realm (OC1) lautet die Swift-URI für die Datei channels.txt im Bucket bucketname im Data Center Phoenix:

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

In diesem Beispiel ist namespace-string der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.

Hinweis:

Die Quelldateien müssen in einem Object Storage-Tier-Bucket gespeichert sein. Autonomous Database unterstützt keine Buckets in der Archive Storage-Tier. Weitere Informationen finden Sie unter Überblick über Object Storage.

Oracle Cloud Infrastructure Object Storage-URI-Format mit vorab authentifizierter Anforderungs-URL

Wenn sich die Quelldateien in Oracle Cloud Infrastructure Object Storage befinden, können Sie vorab authentifizierte Oracle Cloud Infrastructure-URIs verwenden. Wenn Sie eine vorab authentifizierte Anforderung erstellen, wird eine eindeutige URL generiert. Anschließend können Sie Benutzern in Ihrer Organisation, Partnern oder Drittanbietern die eindeutige URL für den Zugriff auf das Object Storage-Ressourcenziel bereitstellen, das in der vorab authentifizierten Anforderung angegeben ist.

Hinweis:

Prüfen Sie sorgfältig die Geschäftsanforderungen für den vorab authentifizierten Zugriff und die damit verbundenen Sicherheitsauswirkungen. Achten Sie beim Erstellen der vorab authentifizierten Anforderungs-URL auf den Ablauf und den Zugriffstyp, um sicherzustellen, dass sie für Ihre Verwendung geeignet sind.

Über eine vorab authentifizierte Anforderungs-URL kann jeder, der über die URL verfügt, auf die in der Anforderung angegebenen Ziele zugreifen, solange die Anforderung aktiv ist. Neben der Prüfung des betrieblichen Erfordernisses des vorab authentifizierten Zugriffs muss auch seine Verteilung verwaltet werden.

Wenn sich Ihre Quelldateien in Oracle Cloud Infrastructure Object Storage in der kommerziellen Realm (OC1) befinden, wird empfohlen, das folgende URI-Format zu verwenden, das dedizierte Object Storage-Endpunkte verwendet. Weitere Informationen finden Sie unter Dedizierte Object Storage-Endpunkte.

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

Hinweis:

Dedizierte Endpunkt-URLs für OCI Object Store werden nur in kommerziellen Realms (OC1) unterstützt und sind ab 19.24 verfügbar.

Wenn sich die Quelldateien in Oracle Cloud Infrastructure Object Storage und nicht in der kommerziellen Realm (OC1) befinden, müssen Sie das folgende Format verwenden:

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

Beispiel für eine im Voraus authentifizierte URI für die Datei channels.txt im Bucket Bucketname im Data Center Phoenix in der kommerziellen Realm (OC1):

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

In diesem Beispiel ist namespace-string der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.

Sie können eine vorab authentifizierte URL in allen DBMS_CLOUD-Prozeduren verwenden, die eine URL für den Zugriff auf Dateien im Oracle Cloud Infrastructure-Objektspeicher annehmen, ohne Zugangsdaten erstellen zu müssen. Sie müssen den Parameter credential_name als NULL angeben oder keinen Parameter credential_name angeben.

Beispiel:

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

Hinweis:

Eine Liste mit gemischten URLs ist gültig. Wenn die URL-Liste sowohl vorab authentifizierte URLs als auch URLs enthält, für die eine Authentifizierung erforderlich ist, greift DBMS_CLOUD mit dem angegebenen credential_name auf die URLs zu, für die eine Authentifizierung erforderlich ist. Für die vorab authentifizierten URLs wird der angegebene credential_name ignoriert.

Weitere Informationen finden Sie unter Vorab authentifizierte Anforderungen verwenden.

Amazon S3-URI-Format

Wenn sich Ihre Quelldateien in Amazon S3 befinden, finden Sie eine Beschreibung des URI-Formats für den Zugriff auf Ihre Dateien unter Auf einen Bucket zugreifen.

Beispiel: Folgendes verweist auf die Datei channels.txt im Bucket atpc in der Region us-west-2.

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

Sie können eine vorab signierte URL in jeder DBMS_CLOUD-Prozedur verwenden, die eine URL für den Zugriff auf Dateien im Amazon S3-Objektspeicher annimmt, ohne Zugangsdaten erstellen zu müssen. Um eine vorab signierte URL in einer DBMS_CLOUD-Prozedur zu verwenden, geben Sie entweder den Parameter credential_name als NULL an, oder Sie geben keinen credential_name-Parameter an.

Weitere Informationen finden Sie unter Objekt mit anderen teilen.

Hinweis:

DBMS_CLOUD unterstützt die standardmäßige Amazon S3-Endpunktsyntax für den Zugriff auf Ihre Buckets. DBMS_CLOUD unterstützt keine Amazon S3-Legacy-Endpunkte. Weitere Informationen finden Sie unter Legacy-Endpunkte.

Azure Blob Storage-URI-Format

Wenn sich Ihre Quelldateien in Azure Blob Storage befinden, finden Sie eine Beschreibung des URI-Formats für den Zugriff auf Ihre Dateien hier: Ressourcen-URI-Syntax.

Beispiel: Folgendes verweist auf die Datei channels.txt im Container atpc im Speicheraccount atpc_user:

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

Hinweis:

Sie können die Shared Access Signatures-(SAS-)URL in allen DBMS_CLOUD-Prozeduren verwenden, die eine URL für den Zugriff auf Dateien in Azure Blob Storage annehmen, ohne Zugangsdaten erstellen zu müssen. Um eine Shared Access Signature-(SAS-)URL zu verwenden, geben Sie entweder den Parameter credential_name als NULL an, oder Sie geben keinen credential_name-Parameter an.

Weitere Informationen finden Sie unter Beschränkten Zugriff auf Azure-Speicherressourcen erteilen, die Shared Access Signatures (SAS) verwenden.

Amazon S3 kompatibles URI-Format

DBMS_CLOUD unterstützt Objektspeicherservice-Implementierungen, die mit Amazon S3 kompatible URLs unterstützen, einschließlich der folgenden Services:

  • Oracle Cloud Infrastructure Object Storage mit Amazon S3-kompatibler URL
  • Google Cloud Storage mit Amazon S3-kompatibler URL
  • Wasabi Hot Cloud Storage mit Amazon S3-kompatibler URL

Hinweis:

Um DBMS_CLOUD mit einem Amazon S3-fähigen Objektspeicher zu verwenden, müssen Sie gültige Zugangsdaten angeben. Weitere Informationen finden Sie unter Prozedur CREATE_CREDENTIAL.

Wenn sich Ihre Quelldateien in einem Service befinden, der Amazon S3-kompatible URIs unterstützt, verwenden Sie das folgende URI-Format, um auf Ihre Dateien zuzugreifen:

  • Kompatible URL in Oracle Cloud Infrastructure Object Storage S3

    Wenn sich Ihre Quelldateien in Oracle Cloud Infrastructure Object Storage in der kommerziellen Realm (OC1) befinden, wird empfohlen, die unten aufgeführten Objekt-URL- und Bucket-URL-Formate für die kommerzielle Realm (OC1) zu verwenden. Weitere Informationen finden Sie unter Dedizierte Object Storage-Endpunkte.

    Hinweis:

    Dedizierte Endpunkt-URLs für OCI Object Store werden nur in kommerziellen Realms (OC1) unterstützt und sind ab 19.24 verfügbar.

    Objekt-URL-Formate

    • Wird nur in der kommerziellen Realm unterstützt (OC1):

      https://mynamespace.compat.objectstorage.region.oci.customer-oci.com/bucket_name/object_name
    • In allen Zonen unterstützt:

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

    Bucket-URL-Formate:

    • Wird nur in der kommerziellen Realm unterstützt (OC1):

      https://mynamespace.compat.objectstorage.region.oci.customer-oci.com/bucket_name
    • In allen Zonen unterstützt:

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

    Weitere Informationen finden Sie unter Amazon S3-Kompatibilität und Object Storage-Service-API.

  • S3-kompatible URL in Google Cloud Storage

    Objekt-URL-Format:

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

    Bucket-URL-Format:

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

    Weitere Informationen finden Sie unter Von Amazon S3 zu Cloud Storage migrieren und Anforderungsendpunkte.

  • Mit Wasabi S3 kompatible URL

    Objekt-URL-Format:

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

    Bucket-URL-Format:

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

    Weitere Informationen finden Sie unter Wasabi S3-API-Referenz und Service-URLs für die Speicherregionen von Wasabi.

Zusätzliche vom Kunden verwaltete URI-Formate

Neben dem vorkonfigurierten, erkannten URIs mit seinen vollqualifizierten Domainnamen (FQDNs) kann DBMS_CLOUD nicht das richtige Authentifizierungsschema für vom Kunden verwaltete Endpunkte URIs bestimmen. In diesen Fällen basiert DBMS_CLOUD auf dem richtigen URI-Schema, um das Authentifizierungsschema für den vom Kunden verwalteten Endpunkt zu identifizieren.
URI-Schema Authentifizierungstyp Zugriffsart - Beschreibung URI-Beispiel
einfach:// Basisauthentifizierung Benutzername und Kennwort, die im Datenbankzugangsdatenobjekt gespeichert sind, werden zur Authentifizierung der HTTP-Anforderung verwendet basic://api.github.com/users/myaccount
bearer:// Authentifizierung von Bearer-Token Mit dem im Kennwortfeld im Datenbankzugangsdatenobjekt gespeicherten Bearer-Token wird der Autorisierungsheader für die HTTP-Anforderung angegeben bearer://api.sendgrid.com/v3/resource
oci:// OCI-nativ OCI-Signaturschlüssel, der aus dem gespeicherten Datenbankzugangsdatenobjekt abgerufen und zum Signieren von Anforderungen mit dem OCI-Authentifizierungsprotokoll verwendet wird oci://objectstorage.us-ashburn-1.oraclecloud.com
öffentlich:// Keine Berechtigungsprüfung Öffentliche URLs public://cms.data.gov/
s3:// Amazon Web Services S3-kompatibel Zugriff auf Schlüssel und Secret Key, der aus dem Feld "Benutzername/Kennwort" des Datenbankzugangsdatenobjekts abgerufen wird, und S3-kompatible Authentifizierung für die HTTP-Anforderung. s3://bucket.myprivatesite.com/file1.csv

Beispiele:

Vom Kunden verwalteter Endpunkt mit S3-kompatibler Authentifizierung.

Dieses Beispiel zeigt, wie Kunden für die neue URIs das öffentliche oder private Hostnamensmuster mit dem Package DBMS_NETWORK_ACL_ADMIN hinzufügen können. Der Codeblock, der von Benutzer ADMIN ausgeführt wird, ermöglicht den Zugriff HTTPS für Benutzer SCOTT auf Endpunkte in Domain *.myprivatesite.com. Anschließend wird gezeigt, wie Benutzer SCOTT auf den neu aktivierten Endpunkt zugreift. Beachten Sie, dass die Zugangsdaten MY_CRED für Benutzer SCOTT den Zugriffsschlüssel und den Secret Key für die S3-kompatible Authentifizierung speichern müssen, die für die HTTP-Anforderung ausgeführt wird, die durch das Präfix URI angegeben wird.


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

Vom Kunden verwalteter Endpunkt mit öffentlichem Zugriff

In diesem Beispiel wird gezeigt, wie Sie den Benutzer SCOTT registrieren, um auf öffentliche REST-APIs zuzugreifen. Der Benutzer ADMIN erstellt eine Netzwerk-ACL für den Host, um dem Benutzer SCOTT Zugriff zu erteilen.


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