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:
- Öffnen Sie die Oracle Cloud Infrastructure-Konsole, indem Sie neben "Oracle Cloud" auf
klicken.
- Klicken Sie im linken Navigationsmenü von Oracle Cloud Infrastructure auf Core-Infrastruktur. Klicken Sie unter Object Storage auf Object Storage.
- Wählen Sie unter "Listenbereich" ein Compartment aus.
- Wählen Sie in der Spalte Name einen Bucket aus.
- Klicken Sie im Bereich "Objekte" auf Objektdetails anzeigen.
- 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, greiftDBMS_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 allenDBMS_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:
UmDBMS_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
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;
/