클라우드 오브젝트 스토리지 URI 형식

이 문서에서는 DBMS_CLOUD 작업에서 소스 파일 URI의 형식에 대해 설명합니다. 형식은 사용 중인 오브젝트 스토리지 서비스에 따라 다릅니다. DBMS_CLOUD는 보안 통신을 보장하며 지정하는 모든 URI는 URI에 대한 접두어로 https://와 함께 HTTPS를 사용해야 합니다.

Oracle Cloud Infrastructure Object Storage 고유 URI 형식

주:

Autonomous Database는 표준 계층 스토리지 버킷만 지원합니다. 아카이브 계층 스토리지 버킷을 지원하지 않습니다.

소스 파일이 상용 영역(OC1)의 Oracle Cloud Infrastructure Object Storage에 상주하는 경우 오브젝트 스토리지 전용 엔드포인트를 사용하는 다음 URI 형식을 사용하는 것이 좋습니다. 자세한 내용은 오브젝트 스토리지 전용 끝점을 참조하십시오.

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

주:

OCI 객체 저장소 전용 끝점 URL은 상용 영역(OC1)에서만 지원되며 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 왼쪽 탐색 메뉴에서 코어 인프라를 누릅니다. Object Storage에서 Object Storage를 누릅니다.
  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

주:

OCI 객체 저장소 전용 끝점 URL은 상용 영역(OC1)에서만 지원되며 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가 버킷 이름입니다. 자세한 내용은 Object Storage 네임스페이스 이해를 참조하십시오.

주:

소스 파일은 오브젝트 스토리지 계층 버킷에 저장되어야 합니다. Autonomous Database는 Archive Storage 계층의 버킷을 지원하지 않습니다. 자세한 내용은 Object Storage 개요를 참조하십시오.

사전 인증된 요청 URL을 사용한 Oracle Cloud Infrastructure Object Storage URI 형식

소스 파일이 Oracle Cloud Infrastructure Object Storage에 있는 경우 Oracle Cloud Infrastructure 사전 인증된 URI를 사용할 수 있습니다. 사전 인증된 요청을 생성하면 고유한 URL이 생성됩니다. 그런 다음 조직, 파트너 또는 제3자의 사용자에게 고유한 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

주:

OCI 객체 저장소 전용 끝점 URL은 상용 영역(OC1)에서만 지원되며 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_CLOUDAmazon S3 레거시 엔드포인트를 지원하지 않습니다. 자세한 내용은 레거시 끝점을 참조하십시오.

Azure Blob 저장 영역 URI 형식

소스 파일이 Azure Blob Storage에 상주하는 경우 파일에 액세스하기 위한 URI 형식에 대한 설명은 리소스 URI 구문을 참조하십시오.

예를 들어, 다음은 스토리지 계정 atpc_useratpc 컨테이너에 있는 channels.txt 파일을 나타냅니다.

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

주:

인증서를 만들 필요 없이 URL을 사용하여 Azure Blob Storage의 파일에 액세스하는 DBMS_CLOUD 절차에서 SAS(공유 액세스 서명) URL을 사용할 수 있습니다. SAS(공유 액세스 서명) URL을 사용하려면 credential_name 매개변수를 NULL로 지정하거나 credential_name 매개변수를 제공하지 마십시오.

자세한 내용은 SAS(공유 액세스 서명)를 사용하여 Azure Storage 리소스에 대한 제한된 액세스 권한 부여를 참조하십시오.

Amazon S3 호환 URI 형식

DBMS_CLOUD는 다음 서비스를 포함하여 Amazon S3 호환 URL을 지원하는 오브젝트 스토리지 서비스 구현을 지원합니다.

  • Oracle Cloud Infrastructure Object StorageAmazon S3 호환 URL
  • Amazon S3 호환 URL이 포함된 Google Cloud Storage
  • Amazon S3 호환 URL이 포함된 Wasabi Hot Cloud Storage

주:

DBMS_CLOUDAmazon S3 호환 객체 저장소와 함께 사용하려면 적합한 인증서를 제공해야 합니다. 자세한 내용은 CREATE_CREDENTIAL Procedure를 참조하십시오.

소스 파일이 Amazon S3 호환 URI를 지원하는 서비스에 상주하는 경우 다음 URI 형식을 사용하여 파일에 액세스합니다.

  • Oracle Cloud Infrastructure Object Storage S3 호환 URL

    소스 파일이 상용 영역(OC1)의 Oracle Cloud Infrastructure Object Storage에 상주하는 경우 상용 영역(OC1)에 대해 아래 나열된 객체 URL 및 버킷 URL 형식을 사용하는 것이 좋습니다. 자세한 내용은 오브젝트 스토리지 전용 끝점을 참조하십시오.

    주:

    OCI 객체 저장소 전용 끝점 URL은 상용 영역(OC1)에서만 지원되며 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 ReferenceService URLs for Wasabi's Storage Regions을 참조하십시오.

추가 고객 관리 URI 형식

DBMS_CLOUD는 정규화된 도메인 이름(FQDNs)을 사용하여 미리 구성된 인식된 URIs 외에도 고객 관리 끝점 URIs에 대한 적절한 인증 체계를 결정할 수 없습니다. 이 경우 DBMS_CLOUD는 적절한 URI 체계를 사용하여 고객 관리 끝점에 대한 인증 체계를 식별합니다.
URI 체계 인증 유형 액세스 방법 설명 URI 예제
기본:// 기본 인증 데이터베이스 인증서 객체에 저장된 사용자 이름 및 비밀번호는 HTTP 요청을 인증하는 데 사용됩니다. basic://api.github.com/users/myaccount
전달자:// 지급자 토큰 인증 데이터베이스 인증서 객체의 비밀번호 필드에 저장된 지급자 토큰은 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에 의해 실행되는 코드 블록은 사용자 SCOTT에 대해 도메인 *.myprivatesite.com의 끝점에 대한 HTTPS 액세스를 사용으로 설정합니다. 그런 다음 사용자 SCOTT가 새로 사용으로 설정된 끝점에 액세스하는 방법을 보여줍니다. 사용자 SCOTT에 대한 인증서 MY_CREDURI 접두어로 표시된 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;
/

퍼블릭 액세스가 가능한 고객 관리 끝점

이 예에서는 공용 REST API에 액세스하기 위해 SCOTT 사용자를 등록하는 방법을 보여줍니다. ADMIN 사용자는 SCOTT 사용자에 대한 액세스를 제공하기 위해 호스트에 대한 네트워크 ACL을 만듭니다.


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