雲端物件儲存 URI 格式

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

Oracle Cloud Infrastructure Object Storage 原生 URI 格式

附註:

Autonomous Database 僅支援標準層儲存貯體。不支援封存層儲存的儲存桶。

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

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 是儲存桶名稱。請參閱瞭解 Object Storage 命名空間瞭解詳細資訊。

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

  1. 按一下 Oracle Cloud 旁邊的 導覽圖示,即可開啟 Oracle Cloud Infrastructure 主控台。
  2. Oracle Cloud Infrastructure 左側導覽功能表中,按一下核心基礎架構。在物件儲存底下,按一下物件儲存
  3. 在「清單範圍」下,選取區間
  4. 名稱欄中,選取儲存桶。
  5. 在「物件 (Object)」區域,按一下檢視物件詳細資訊 (View Object Details)
  6. 物件詳細資訊頁面上, URL 路徑 (URI) 欄位會顯示存取物件的 URI。

Oracle Cloud Infrastructure Object Storage Swift URI 格式

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

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 儲存設定 (Bucket) 中 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 是儲存桶名稱。請參閱瞭解 Object Storage 命名空間瞭解詳細資訊。

附註:

來源檔案必須儲存在 Object Storage 層貯體中。Autonomous Database 不支援封存儲存層中的儲存桶。如需詳細資訊,請參閱物件儲存簡介

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

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

附註:

仔細評估業務需求,以及預先驗證存取的安全相關問題。當您建立預先認證的要求 URL 時,請注意到期存取類型,以確保它們適合您使用。

預先認證要求 URL 可讓擁有 URL 存取權的任何人在要求中識別的目標 (只要要求為作用中)。除了考量預先認證存取的作業需求之外,管理其分送也同樣重要。

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

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 是儲存桶名稱。請參閱瞭解 Object Storage 命名空間瞭解詳細資訊。

您可以在採用 URL 存取 Oracle Cloud Infrastructure 物件存放區中檔案的任何 DBMS_CLOUD 程序中使用預先認證的 URL,而不需要建立證明資料。您必須將 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,以及針對預先認證的 URL,會忽略指定的 credential_name

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

Amazon S3 URI 格式

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

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

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

您可以在採用 URL 存取 Amazon S3 物件存放區中檔案的任何 DBMS_CLOUD 程序中使用預先簽署的 URL,而不需要建立證明資料。若要在任何 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

附註:

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

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

Amazon S3 相容 URI 格式

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

  • Amazon S3 相容 URL 的 Oracle Cloud Infrastructure Object Storage
  • Google Cloud Storage 與 Amazon S3 相容的 URL
  • Wasabi Hot Cloud Storage 搭配 Amazon S3 相容的 URL

附註:

若要將 DBMS_CLOUDAmazon S3 相容的物件存放區搭配使用,您必須提供有效的證明資料。如需詳細資訊,請參閱CREATE_CREDENTIAL 程序

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

  • Oracle Cloud Infrastructure Object Storage S3 相容 URL

    如果您的來源檔案位於商業範圍 (OC1) 中的 Oracle Cloud Infrastructure Object Storage 上,建議您使用下方所列的物件 URL 和儲存桶 URL 格式作為商業範圍 (OC1)。如需詳細資訊,請參閱 Object Storage Dedicated Endpoints

    附註:

    僅商業領域 (OC1) 支援 OCI Object Store 專用端點 URL,19.24 和更新版本提供。

    物件 URL 格式

    • 僅支援商業範圍 (OC1):

      https://mynamespace.compat.objectstorage.region.oci.customer-oci.com/bucket_name/object_name
    • 所有區域均支援:

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

    儲存桶 URL 格式:

    • 僅支援商業範圍 (OC1):

      https://mynamespace.compat.objectstorage.region.oci.customer-oci.com/bucket_name
    • 所有區域均支援:

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

    如需詳細資訊,請參閱 Amazon S3 相容性物件儲存體服務 API

  • Google Cloud Storage S3 相容 URL

    物件 URL 格式:

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

    分組 URL 格式:

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

    請參閱從 Amazon S3 移轉至雲端儲存體要求端點以瞭解詳細資訊。

  • Wasabi S3 相容 URL

    物件 URL 格式:

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

    分組 URL 格式:

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

    如需詳細資訊,請參閱 Wasabi S3 API ReferenceWasabi 儲存區域的服務 URL

其他客戶管理的 URI 格式

除了預先設定且認可的 URIs 及其完整網域名稱 (FQDNs) 之外,DBMS_CLOUD 還無法判斷客戶管理端點 URIs 的正確認證配置。在這些情況下,DBMS_CLOUD 倚賴適當的 URI 配置來識別客戶管理端點的認證配置。
URI 配置 認證類型 存取方法描述 URI 範例
basic:// 基本認證 儲存在資料庫證明資料物件中的使用者名稱和密碼是用來認證 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:// 沒有認證。 公用 URL 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;
/