Formatos de URI do Cloud Object Storage

Este artigo descreve o formato dos URIs do arquivo de origem em operações com o DBMS_CLOUD. O formato depende do serviço de armazenamento de objetos que você está usando. DBMS_CLOUD garante comunicação segura e qualquer URI que você especificar deve usar HTTPS, com https:// como prefixo para o URI.

Formato de URI Nativo do Oracle Cloud Infrastructure Object Storage

Observação: O Autonomous AI Database suporta apenas buckets de armazenamento de camada padrão. Ele não oferece suporte a buckets de armazenamento na camada de arquivo compactado.

Se seus arquivos de origem residirem no Oracle Cloud Infrastructure Object Storage no realm comercial (OC1), recomendamos que você use o formato de URI a seguir, que usa Pontos Finais Dedicados ao Object Storage. Consulte Pontos Finais Dedicados do Serviço Object Storage para obter mais informações.

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

Observação: Os URLs de pontos finais dedicados do OCI Object Store só são suportados em realms comerciais (OC1) e estão disponíveis na versão 19.24 e superior.

Se seus arquivos de origem residirem no Oracle Cloud Infrastructure Object Storage e não estiverem no realm comercial (OC1), use o seguinte formato:

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

Por exemplo, no realm comercial (OC1), o URI Nativo do arquivo channels.txt no bucket *bucketname* no data center Phoenix é:

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

Neste exemplo, namespace-string é o namespace do Oracle Cloud Infrastructure Object Storage e bucketname é o nome do bucket. Consulte Noções Básicas de Namespaces do serviço Object Storage para obter mais informações.

Você pode encontrar o URI no "Detalhes do Objeto" do Oracle Cloud Infrastructure Object Storage no menu de reticências do lado direito no Object Store:

  1. Abra a Console do Oracle Cloud Infrastructure clicando em ícone de navegação ao lado do Oracle Cloud.

  2. No menu de navegação esquerdo do Oracle Cloud Infrastructure, clique em Storage. Em Object Storage & Archive Storage, clique em Buckets.

  3. Em List Scope, selecione um Compartimento.

  4. Clique em um nome de bucket na coluna Nome.

  5. Na guia Objetos, abra Ações e clique em Exibir detalhes do objeto do objeto desejado.

  6. Na página Detalhes do Objeto, o campo Caminho do URL (URI) mostra o URI para acessar o objeto.

Formato de URI Swift do Oracle Cloud Infrastructure Object Storage

Se seus arquivos de origem residirem no Oracle Cloud Infrastructure Object Storage no realm comercial (OC1), recomendamos que você use o formato de URI a seguir, que usa Pontos Finais Dedicados ao Object Storage. Consulte Pontos Finais Dedicados do Serviço Object Storage para obter mais informações.

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

Observação: Os URLs de pontos finais dedicados do OCI Object Store só são suportados em realms comerciais (OC1) e estão disponíveis na versão 19.24 e superior.

Se seus arquivos de origem residirem no Oracle Cloud Infrastructure Object Storage e não estiverem no realm comercial (OC1), use o seguinte formato:

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

Por exemplo, no realm comercial (OC1), o URI Swift do arquivo channels.txt no bucket *bucketname* no data center Phoenix é:

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

Neste exemplo, namespace-string é o namespace do Oracle Cloud Infrastructure Object Storage e bucketname é o nome do bucket. Consulte Noções Básicas de Namespaces do serviço Object Storage para obter mais informações.

Observação: Os arquivos de origem precisam ser armazenados em um bucket da camada do serviço Object Storage. O Autonomous AI Database não suporta buckets na camada de Armazenamento de Arquivos Compactados. Consulte Visão Geral do Serviço Object Storage para obter mais informações.

Formato de URI do Oracle Cloud Infrastructure Object Storage Usando o URL de Solicitação Pré-autenticada

Se seus arquivos de origem residirem no Oracle Cloud Infrastructure Object Storage, você poderá usar URIs pré-autenticados do Oracle Cloud Infrastructure. Quando você cria uma solicitação pré-autenticada, um URL exclusivo é gerado. Em seguida, você pode fornecer o URL exclusivo aos usuários da sua organização, parceiros ou terceiros para acessar o alvo de recursos do Object Storage identificado na solicitação pré-autenticada.

Observação: Avalie cuidadosamente o requisito de negócios e as ramificações de segurança do acesso pré-autenticado. Ao criar o URL da solicitação pré-autenticada, anote a Expiração e o Tipo de Acesso para garantir que sejam apropriados para seu uso.

Um URL da solicitação pré-autenticada dá a qualquer pessoa que tenha o acesso do URL aos destinos identificados na solicitação, desde que a solicitação esteja ativa. Além de considerar as necessidades operacionais de acesso pré-autenticado, é igualmente importante gerenciar sua distribuição.

Se seus arquivos de origem residirem no Oracle Cloud Infrastructure Object Storage no realm comercial (OC1), recomendamos que você use o formato de URI a seguir, que usa Pontos Finais Dedicados ao Object Storage. Consulte Pontos Finais Dedicados do Serviço Object Storage para obter mais informações.

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

Observação: Os URLs de pontos finais dedicados do OCI Object Store só são suportados em realms comerciais (OC1) e estão disponíveis na versão 19.24 e superior.

Se seus arquivos de origem residirem no Oracle Cloud Infrastructure Object Storage e não estiverem no realm comercial (OC1), use o seguinte formato:

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

Por exemplo, no realm comercial (OC1), uma amostra de URI pré-autenticado para o arquivo channels.txt no bucket bucketname no data center Phoenix é:

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

Neste exemplo, namespace-string é o namespace do Oracle Cloud Infrastructure Object Storage e bucketname é o nome do bucket. Consulte Noções Básicas de Namespaces do serviço Object Storage para obter mais informações.

Você pode usar um URL pré-autenticado em qualquer procedimento DBMS_CLOUD que obtenha um URL para acessar arquivos no armazenamento de objetos do Oracle Cloud Infrastructure, sem a necessidade de criar uma credencial. Especifique o parâmetro credential_name como NULL ou não forneça um parâmetro credential_name.

Por exemplo:

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

Observação: uma lista de URLs mistos é válida. Se a lista de URLs contiver URLs pré-autenticados e URLs que exigem autenticação, o DBMS_CLOUD usará o credential_name especificado para acessar os URLs que exigem autenticação e, para os URLs pré-autenticados, o credential_name especificado será ignorado.

Consulte Usando Solicitações Pré-Autenticadas para obter mais informações.

Formato de URI do Amazon S3

Se seus arquivos de origem residirem no Amazon S3, consulte o seguinte para obter uma descrição do formato de URI para acessar seus arquivos: Acessando um bucket.

Por exemplo, o seguinte se refere ao arquivo channels.txt no bucket atpc na região us-west-2.

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

Você pode usar um URL pré-assinado em qualquer procedimento DBMS_CLOUD que obtenha um URL para acessar arquivos no armazenamento de objetos do Amazon S3, sem a necessidade de criar uma credencial. Para usar um URL pré-assinado em qualquer procedimento DBMS_CLOUD, especifique o parâmetro credential_name como NULL ou não forneça um parâmetro credential_name.

Consulte Compartilhar um Objeto com Outros para obter mais informações.

Observação: O DBMS_CLOUD suporta a sintaxe de ponto final padrão do Amazon S3 para acessar seus buckets. O DBMS_CLOUD não suporta pontos finais legados do Amazon S3. Consulte Pontos Finais Legados para obter mais informações.

Formato de URI de Armazenamento do Blob do Azure

Se seus arquivos de origem residirem no Armazenamento Blob do Azure, consulte o seguinte para obter uma descrição do formato de URI para acessar seus arquivos: Sintaxe de URI do Recurso.

Por exemplo, o seguinte se refere ao arquivo channels.txt no contêiner atpc na conta de armazenamento atpc_user:

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

Observação: Você pode usar o URL de Assinaturas de Acesso Compartilhado (SAS) em qualquer procedimento DBMS_CLOUD que obtenha um URL para acessar arquivos no Armazenamento de Blob do Azure, sem a necessidade de criar uma credencial. Para usar um URL de Assinatura de Acesso Compartilhado (SAS), especifique o parâmetro credential_name como NULL ou não forneça um parâmetro credential_name.

Consulte Conceder Acesso Limitado a Recursos de Armazenamento do Azure Usando Assinaturas de Acesso Compartilhado (SAS) para obter mais informações.

Formato de URI Compatível com Amazon S3

O DBMS_CLOUD suporta implementações de serviço de armazenamento de objetos que suportam URLs compatíveis com o Amazon S3, incluindo os seguintes serviços:

Observação: Para usar o DBMS_CLOUD com um armazenamento de objetos compatível com o Amazon S3, você precisa fornecer credenciais válidas. Consulte Procedimento CREATE_CREDENTIAL para obter mais informações.

Se seus arquivos de origem residirem em um serviço que suporte URIs compatíveis com o Amazon S3, use o seguinte formato de URI para acessar seus arquivos:

Formatos de URI Adicionais Gerenciados pelo Cliente

Além do URIs reconhecido pré-configurado com seus nomes de domínio totalmente qualificados (FQDNs), o DBMS_CLOUD não pode determinar o esquema de autenticação adequado para os pontos finais gerenciados pelo cliente URIs. Nesses casos, o DBMS_CLOUD conta com o esquema URI adequado para identificar o esquema de autenticação do ponto final gerenciado pelo cliente.

Esquema do URI Tipo de Autenticação Descrição do Método de Acesso Exemplo de URI
básico:// Autenticação básica O nome de usuário e a senha armazenados no objeto de credencial do banco de dados são usados para autenticar a solicitação HTTP basic://api.github.com/users/myaccount
bearer:// Autenticação de token do portador O token do portador armazenado no campo de senha no objeto de credencial do banco de dados é usado para especificar o cabeçalho de Autorização para a solicitação HTTP bearer://api.sendgrid.com/v3/resource
oci:// Nativo da OCI Chave de assinatura do OCI obtida do objeto de credencial de banco de dados armazenado e usada para assinar solicitações usando o protocolo de autenticação do OCI oci://objectstorage.us-ashburn-1.oraclecloud.com
public:// Nenhuma autenticação URLs Públicas public://cms.data.gov/
s3:// Compatível com Amazon Web Services S3 Chave de acesso e chave secreta obtidas no campo de nome de usuário/senha do objeto de credencial do banco de dados e autenticação compatível com S3 executada para a solicitação HTTP. s3://bucket.myprivatesite.com/file1.csv

Exemplos:

Ponto final gerenciado pelo cliente usando autenticação compatível com S3.

Este exemplo mostra como para o novo URIs, os clientes podem adicionar o padrão de nome de host público ou privado usando o pacote DBMS_NETWORK_ACL_ADMIN. O bloco de código, executado pelo usuário ADMIN, permite que o acesso HTTPS do usuário SCOTT aos pontos finais no domínio *.myprivatesite.com. Em seguida, ele mostra como o usuário SCOTT acessa o ponto final recém-ativado. Observe que a credencial MY_CRED para o usuário SCOTT deve armazenar a chave de acesso e a chave secreta para autenticação compatível com S3 executada para a solicitação HTTP indicada pelo prefixo URI.

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

Ponto final gerenciado pelo cliente com acesso público

Este exemplo mostra como registrar o usuário SCOTT para acessar APIs REST públicas. O usuário ADMIN cria uma ACL de rede para que o host forneça acesso ao usuário 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;
/