雲端物件儲存 URI 格式

本文說明使用 DBMS_CLOUD 進行作業時,來源檔案 URI 的格式。格式取決於您所使用的物件儲存體服務。DBMS_CLOUD 可保證安全通訊以及您指定的任何 URI 都必須使用 HTTPS,並以 https:// 作為 URI 的前置碼。

Oracle Cloud Infrastructure Object Storage 原生 URI 格式

注意: 自治式 AI 資料庫只支援標準層儲存的儲存桶。它不支援封存層儲存的儲存桶。

如果您的來源檔案位於商業範圍 (OC1) 的 Oracle Cloud Infrastructure Object Storage 上,建議您使用下列使用物件儲存專用端點的 URI 格式。如需進一步的資訊,請參閱物件儲存專用端點

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

注意:只有商業範圍 (OC1) 支援 OCI Object Store 專用端點 URL,19.24 和更新版本才提供。

如果您的來源檔案位於 Oracle Cloud Infrastructure Object Storage 上,且不在商業領域 (OC1) 中,則必須使用下列格式:

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

例如,在商業範圍 (OC1) 中,Phoenix 資料中心之 *bucketname* 儲存桶中檔案 channels.txt 的原生 URI 為:

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

在此範例中,namespace-string 是 Oracle Cloud Infrastructure 物件儲存命名空間,而 bucketname 是儲存桶名稱。請參閱瞭解物件儲存命名空間以瞭解詳細資訊。

您可以在物件存放區右側省略符號功能表的 Oracle Cloud Infrastructure Object Storage「物件詳細資訊」中找到 URI:

  1. 按一下 Oracle Cloud 旁邊的 「導覽」圖示,即可開啟 Oracle Cloud Infrastructure 主控台。

  2. 從 Oracle Cloud Infrastructure 左側導覽功能表中,按一下儲存。在物件儲存與封存儲存底下,按一下儲存桶

  3. 在「清單範圍」下,選取區間

  4. 按一下名稱資料欄底下的儲存桶名稱。

  5. 物件頁籤上,開啟動作,然後針對您感興趣的物件按一下檢視物件詳細資訊

  6. 物件詳細資訊頁面上, URL 路徑 (URI) 欄位會顯示存取物件的 URI。

Oracle Cloud Infrastructure Object Storage Swift URI 格式

如果您的來源檔案位於商業範圍 (OC1) 的 Oracle Cloud Infrastructure Object Storage 上,建議您使用下列使用物件儲存專用端點的 URI 格式。如需進一步的資訊,請參閱物件儲存專用端點

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

注意:只有商業範圍 (OC1) 支援 OCI Object Store 專用端點 URL,19.24 和更新版本才提供。

如果您的來源檔案位於 Oracle Cloud Infrastructure Object Storage 上,且不在商業領域 (OC1) 中,則必須使用下列格式:

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

例如,在商業範圍 (OC1) 中,Phoenix 資料中心之 *bucketname* 儲存桶中檔案 channels.txt 的 Swift URI 為:

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

在此範例中,namespace-string 是 Oracle Cloud Infrastructure 物件儲存命名空間,而 bucketname 是儲存桶名稱。請參閱瞭解物件儲存命名空間以瞭解詳細資訊。

注意:來源檔案必須儲存在物件儲存層儲存桶中。自治式 AI 資料庫不支援封存儲存層中的儲存桶。請參閱物件儲存總覽以瞭解詳細資訊。

使用預先認證要求 URL 的 Oracle Cloud Infrastructure Object Storage URI 格式

如果您的來源檔案位於 Oracle Cloud Infrastructure Object Storage,您可以使用 Oracle Cloud Infrastructure 預先認證的 URI。當您建立預先認證要求時,會產生唯一的 URL。接著,您可以為組織、合作夥伴或第三方中的使用者提供唯一 URL,以存取預先認證要求中所識別的物件儲存資源目標。

注意:請仔細評估預先認證存取的業務需求和安全相關性。當您建立預先認證的要求 URL 時,請記下到期存取類型,確定它們適合您的使用。

預先認證的要求 URL 可讓任何可以存取要求中識別之目標的 URL,只要要求為作用中狀態即可。除了考量預先認證存取的作業需求之外,管理分配也同樣重要。

如果您的來源檔案位於商業範圍 (OC1) 的 Oracle Cloud Infrastructure Object Storage 上,建議您使用下列使用物件儲存專用端點的 URI 格式。如需進一步的資訊,請參閱物件儲存專用端點

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

注意:只有商業範圍 (OC1) 支援 OCI Object Store 專用端點 URL,19.24 和更新版本才提供。

如果您的來源檔案位於 Oracle Cloud Infrastructure Object Storage 上,且不在商業領域 (OC1) 中,則必須使用下列格式:

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

例如,在商業範圍 (OC1) 中,Phoenix 資料中心之 bucketname 儲存桶中檔案 channels.txt 的預先認證 URI 範例為:

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

在此範例中,namespace-string 是 Oracle Cloud Infrastructure 物件儲存命名空間,而 bucketname 是儲存桶名稱。請參閱瞭解物件儲存命名空間以瞭解詳細資訊。

您可以在任何 DBMS_CLOUD 程序中使用預先認證的 URL,該程序會採用 URL 存取 Oracle Cloud Infrastructure 物件存放區中的檔案,而不需要建立證明資料。您必須將 credential_name 參數指定為 NULL,或不提供 credential_name 參數。

舉例而言:

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

注意:混合 URL 清單有效。如果 URL 清單同時包含需要認證的預先認證 URL 和 URL,則 DBMS_CLOUD 會使用指定的 credential_name 來存取需要認證的 URL,並忽略指定之 credential_name 的預先認證 URL。

請參閱使用預先認證的要求以瞭解詳細資訊。

Amazon S3 URI 格式

如果您的來源檔案位於 Amazon S3,請參閱下列 URI 格式的說明以存取您的檔案:存取儲存桶

例如,下列是指 us-west-2 區域中 atpc 儲存桶中的 channels.txt 檔案。

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

您可在任何 DBMS_CLOUD 程序中使用預先簽署的 URL 來存取 Amazon S3 物件存放區中的檔案,而不需要建立證明資料。若要在任何 DBMS_CLOUD 程序中使用預先指派的 URL,請將 credential_name 參數指定為 NULL,或不要提供 credential_name 參數。

請參閱與其他人共用物件以瞭解詳細資訊。

注意:DBMS_CLOUD 支援存取儲存桶的標準 Amazon S3 端點語法。DBMS_CLOUD 不支援 Amazon S3 舊有端點。請參閱舊版端點以瞭解詳細資訊。

Azure Blob 儲存體 URI 格式

如果您的來源檔案位於 Azure Blob 儲存體中,請參閱下列 URI 格式的描述以存取您的檔案:資源 URI 語法

例如,下列參照儲存帳戶 atpc_useratpc 容器中的 channels.txt 檔案:

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

注意:您可以在任何 DBMS_CLOUD 程序中使用 Shared Access Signatures (SAS) URL 來存取 Azure Blob 儲存體中的檔案,而不需要建立證明資料。若要使用「共用存取簽章 (SAS)」URL,請將 credential_name 參數指定為 NULL,或不要提供 credential_name 參數。

請參閱使用共用存取簽章 (SAS) 授權限制存取 Azure 儲存體資源以瞭解詳細資訊。

與 Amazon S3 相容的 URI 格式

DBMS_CLOUD 支援支援 Amazon S3 相容 URL 的物件儲存服務實作,包括下列服務:

注意:若要將 DBMS_CLOUD 與 Amazon S3 相容的物件存放區搭配使用,您必須提供有效的證明資料。請參閱 CREATE_CREDENTIAL 程序以瞭解詳細資訊。

如果您的來源檔案位於支援 Amazon S3 相容 URI 的服務上,請使用下列 URI 格式來存取您的檔案:

其他客戶管理的 URI 格式

除了預先設定、辨識的 URIs 以及其完整網域名稱 (FQDNs) 之外,DBMS_CLOUD 無法判斷客戶管理端點 URIs 的正確認證配置。在這些情況下,DBMS_CLOUD 會使用適當的 URI 配置來識別客戶管理的端點的認證配置。

URI 配置 認證類型 存取方式描述 URI 範例
基本:// 基本驗證 儲存在資料庫證明資料物件中的使用者名稱和密碼可用來認證 HTTP 要求 basic://api.github.com/users/myaccount
Bearer:// Bearer 憑證驗證 儲存在資料庫證明資料物件之密碼欄位中的 Bearer 權杖是用來指定 HTTP 要求的授權標頭 bearer://api.sendgrid.com/v3/resource
oci:// OCI 原機 從儲存的資料庫證明資料物件取得的 OCI 簽署金鑰,用於使用 OCI 認證協定簽署要求 oci://objectstorage.us-ashburn-1.oraclecloud.com
public:// 沒有認證。 公用網址 public://cms.data.gov/
s3:// 與 Amazon Web Services S3 相容 從資料庫證明資料物件的使用者名稱 / 密碼欄位取得的存取鍵值和秘密鍵值,以及針對 HTTP 要求執行的 S3 相容認證。 s3://bucket.myprivatesite.com/file1.csv

範例:

使用 S3 相容認證的客戶管理端點。

此範例顯示新 URIs 的方式,客戶可以使用 DBMS_NETWORK_ACL_ADMIN 套裝程式新增公用或專用主機名稱樣式。由使用者 ADMIN 執行的程式碼區塊可讓使用者 SCOTTHTTPS 存取至網域 *.myprivatesite.com 中的端點。然後顯示使用者 SCOTT 如何存取新啟用的端點。請注意,使用者 SCOTT 的證明資料 MY_CRED 必須儲存 URI 前置碼所指示之 HTTP 要求所執行的 S3 相容認證存取金鑰和秘密金鑰。

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

具有公用存取權的客戶管理端點

此範例顯示如何註冊 SCOTT 使用者以存取公用 REST API。ADMIN 使用者會為主機建立網路 ACL,以提供 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;
/