Criando uma Solicitação Pré-Autenticada no Serviço Object Storage

Crie uma solicitação pré-autenticada para todos os objetos em um bucket do serviço Object Storage ou para um objeto específico.

Para limitar o escopo de uma solicitação pré-autenticada apenas a objetos que começam com um prefixo específico, consulte Creating a Pre-Authenticated Request for Objects with a Specific Prefix.

Para obter mais informações sobre solicitações pré-autenticadas, consulte Usando Solicitações Pré-Autenticadas.
    1. Abra o menu de navegação e clique em Armazenamento. Em Object Storage & Archive Storage, clique em Buckets.
    2. Selecione o compartimento na lista em List Scope. Todos os buckets desse compartimento são listados em formato tabular.
    3. Clique no bucket cujos detalhes você deseja obter. A página Detalhes do bucket é exibida.
    4. Clique em Solicitação Pré-Autenticada em Recursos. A lista Solicitação Pré-autenticada é exibida. Todas as solicitações pré-autenticadas são listadas em formato tabular.
    5. Clique em Criar Solicitação Pré-autenticada. A caixa de diálogo Criar Solicitação Pré-Autenticada é exibida.
    6. Siga as etapas abaixo:
      • Nome: Digite um nome para a solicitação pré-autenticada ou aceite o nome padrão gerado pelo sistema. O sistema gera um nome de solicitação que reflete o ano, o mês, o dia e a hora atuais. Por exemplo, par-bucket-20210330-1643. Use apenas letras, números, traços, sublinhados e pontos para a nomeação.

      • Destino da Solicitação Pré-Autenticada: Selecione um dos seguintes destinos:

        • Bucket: Cria uma solicitação pré-autenticada para todos os objetos no bucket.

        • Objeto: Cria uma solicitação pré-autenticada para um objeto específico.

        • Objeto com prefixo: Cria uma solicitação pré-autenticada para todos os objetos com um prefixo de nome específico no bucket.

      • Nome do Objeto: (Somente destino do objeto) Informe o nome do objeto ao qual a solicitação pré-autenticada se aplica.

      • Prefixo: (Objeto somente com destino de prefixo): Informe o prefixo usado para determinar quais objetos a solicitação pré-autenticada aplica:

        • É possível especificar um prefixo que inclua uma ou mais barras ("/") para corresponder a nomes de objeto que simulem uma hierarquia ou uma estrutura de diretório.
        • Você pode especificar uma string de prefixo sem um delimitador que corresponda aos caracteres mais à esquerda do nome do objeto.

        Para obter mais informações sobre prefixos, consulte Nomeação de Objetos Usando Prefixos e Hierarquias.

      • Tipo de Acesso:

        Selecione um dos seguintes tipos de acesso, dependendo do tipo de acesso que os usuários da solicitação pré-autenticada têm para os objetos:

        Tipos de acesso a Bucket e Object:

        • Permitir leituras de objeto

        • Permitir gravações de objeto

        • Permitir leituras e gravações de objetos

        Objeto com tipo de acesso de prefixo:

        • Permitir leituras de objetos naqueles com o prefixo especificado

        • Permitir gravações de objetos naqueles com o prefixo especificado

        • Permitir leituras e gravações de objetos naqueles com o prefixo especificado

      • Ativar Listagem de Objetos: (Bucket e Objeto apenas com prefixo) Selecione para permitir que o usuário da solicitação pré-autenticada liste os objetos no bucket.

      • Expiração: Informe a data e a hora em que o acesso de pré-autenticação expira. Clique na caixa para exibir o recurso de calendário no qual é possível selecionar o mês, o dia e a hora. Todos os horários são expressos em UTC. O tempo de expiração padrão é uma semana a partir da criação da solicitação pré-autenticada.

    7. Clique em Criar Solicitação Pré-autenticada. A caixa de diálogo Detalhes da Solicitação Pré-autenticada é exibida.

      A caixa de diálogo Detalhes da Solicitação Pré-autenticada exibe o URL usado para acessar os objetos.

    8. Copie o URL que aparece na caixa URL de Solicitação Pré-autenticado. Você também pode clicar no ícone "copiar" ao lado da caixa. Cole o URL em algum lugar no armazenamento durável para referência futura.
    9. Clique em Fechar.
    Importante

    O URL exclusivo fornecido pelo sistema quando você cria uma solicitação pré-autenticada é a única forma de um usuário acessar o destino da solicitação. O URL é exibido somente no momento da criação e não é armazenado no serviço Object Storage. Não é possível acessar e recuperá-lo novamente depois de fechar a caixa de diálogo Detalhes da Solicitação Pré-Autenticada. Certifique-se de armazená-lo em um lugar seguro e recuperável.

  • Use o comando oci os preauth-request create e os parâmetros necessários para criar uma solicitação pré-autenticada:

    oci os preauth-request create --bucket-name bucket_name --name name --access-type access_type --time-expires expiration_timestamp [OPTIONS]

    O parâmetro name é o nome da solicitação pré-autenizada. Evite inserir informações confidenciais.

    O valor do parâmetro access-type pode ser um dos seguintes:

    • AnyObjectRead: Permite leituras de todos os objetos no bucket.

    • AnyObjectWrite: Permite gravações em todos os objetos do bucket.

    • AnyObjectReadWrite: Permite leituras e gravações em todos os objetos do bucket.

    O valor expiration_timestamp é necessário para usar um timestamp RFC 3339. Por exemplo: 2021-04-02T22:25:27.322000+00:00.

    Por exemplo:

    oci os preauth-request create --bucket-name MyParBucket --name MyAllObjectsReadWritePAR --access-type AnyObjectReadWrite --time-expires="2022-11-21T23:00:00+00:00"
    {  "data": {
        "access-type": "AnyObjectReadWrite",
        "access-uri": "/p/2WOshPVWv9uqIqy6abokChGEXYdCZ8l75CoO26YkSARiRevWlDWJD_QUvtFPUocn/n/MyNamespace/b/MyParBucket/o/",
        "id": "QgT6f1skUMbXDhpXKQ4BRX9u7ci8AAJ7f9OGzgdEkNJ3XQmHzeN/kDhLEbN2HvPn",
        "name": "MyAllObjectsReadWritePAR",
        "object-name": null,
        "time-created": "2021-04-02T22:25:27.322000+00:00",
        "time-expires": "2022-11-21T23:00:00+00:00"

    Listando Ojeções

    A listagem de objetos é negada por padrão. Se --access-type for AnyObjectRead ou AnyObjectReadWrite, você poderá especificar o parâmetro --bucket-listing-action ListObjects opcional ao criar a solicitação pré-autenticada que permite aos usuários listar os objetos no bucket.

    Por exemplo, para criar uma solicitação pré-autenticada que permita acesso de leitura e gravação a todos os objetos no bucket chamado MyParBucket:
    oci os preauth-request create --namespace MyNamespace --bucket-name MyParBucket --name MyAllObjectsReadWritePAR --access-type AnyObjectReadWrite --time-expires="2022-11-21T23:00:00+00:00" --bucket-listing-action ListObjects
    {  "data": {
        "access-type": "AnyObjectReadWrite",
        "access-uri": "/p/2WOshPVWv9uqIqy6abokChGEXYdCZ8l75CoO26YkSARiRevWlDWJD_QUvtFPUocn/n/MyNamespace/b/MyParBucket/o/",
        "bucket-listing-action": "ListObjects",
        "id": "QgT6f1skUMbXDhpXKQ4BRX9u7ci8AAJ7f9OGzgdEkNJ3XQmHzeN/kDhLEbN2HvPn",
        "name": "MyAllObjectsReadWritePAR",
        "object-name": null,
        "time-created": "2021-04-02T22:25:27.322000+00:00",
        "time-expires": "2022-11-21T23:00:00+00:00"
      }
    }
    Importante

    O access-uri fornecido pelo sistema quando você cria uma solicitação pré-autenticada é o elemento-chave do URL que você precisa criar para fornecer ao usuário acesso ao bucket de destino. Copie o access-uri para o armazenamento durável. O access-uri é exibido somente no momento da criação e não pode ser recuperado posteriormente.

    O URL da solicitação pré-autenticada exclusivo fornecido aos usuários para o exemplo anterior é criado da seguinte forma:

    https://objectstorage.region_identifier.oraclecloud.comaccess_uri

    Consulte Sobre Regiões e Domínios de Disponibilidade para obter a lista de identificadores de região válidos.

    Por exemplo, veja a seguir o URL completo da solicitação que permite leituras e gravações em todos os objetos no bucket chamado MyParBucket:

    https://objectstorage.us-phoenix-1.oraclecloud.com/p/2WOshPVWv9uqIqy6abokChGEXYdCZ8l75CoO26YkSARiRevWlDWJD_QUvtFPUocn/n/MyNamespace/b/MyParBucket/o/

    Veja aqui um exemplo de como usar curl para executar a operação PUT para um objeto usando a solicitação pré-autenticada que permite leituras e gravações em todos os objetos no bucket chamado MyParBucket e tem objetos de listagem ativados:

    $ curl -X PUT --data-binary '@edit-lifecycle-rules.pdf' https://objectstorage.us-phoenix-1.oraclecloud.com/p/l04eqXvxQ5HcnrXkWS8Kdf4mS812KLDyG_dbArXa8hDdHssXTKiUD0w2HNCEDS4W/n/MyNamespace/b/MyParBucket/o/edit-lifecycle-rules.pdf
    

    Veja um exemplo de uso de curl para objetos GET usando a mesma solicitação pré-autenticada:

    $ curl -X GET https://objectstorage.us-phoenix-1.oraclecloud.com/p/2WOshPVWv9uqIqy6abokChGEXYdCZ8l75CoO26YkSARiRevWlDWJD_QUvtFPUocn/n/MyNamespace/b/MyParBucket/o/
    {"objects":[{"name":"InfoWorld DeepDive - Tips  for Git and GitHub Users.pdf"},{"name":"OCISG_README.txt"},{"name":"OCI_User_Guide.pdf"},{"name":"OracleCorporateTerminologyUsageGuideRedwood.pdf"},{"name":"VPN.png"},{"name":"eventslogreference.htm"},{"name":"flowlogreference.htm"},{"name":"functionslogreference.htm"},{"name":"glob.txt"},{"name":"loadbalancerreference.htm"},{"name":"objectstoragelogreference.htm"},{"name":"replication.txt"},{"name":"troubleshooting.txt"},{"name":"udx-1494-lifecycle-rule-glob.pdf"}]}

    Observe que GET lista a operação PUT recente para edit-lifecycle-rules.pdf e todos os outros objetos no bucket. Opcionalmente, você pode usar o parâmetro de consulta fields para incluir também os campos size (tamanho do objeto em bytes), etag, md5, timeCreated (data e hora da criação do objeto), timeModified (data e hora da modificação do objeto), storageTier e archivalState. Consulte Como Obter uma Lista de Objetos para obter mais detalhes.

    Criando uma Solicitação Pré-autenticada para um Objeto Específico

    Inclua o parâmetro object-name e o nome do objeto para criar uma solicitação pré-autenticada para um objeto específico. Por exemplo, para criar uma solicitação pré-autenticada que permita leituras e gravações em um objeto chamado OCI_User_Guide.pdf no bucket chamado MyParBucket, execute o seguinte comando da CLI:

    oci os preauth-request create --bucket-name MyParBucket --name MyObjectReadWritePAR --access-type ObjectReadWrite --object-name OCI_User_Guide.pdf --time-expires="2022-11-21T23:00:00+00:00"
    {  "data": {
        "access-type": "ObjectReadWrite",
        "access-uri": "/p/v0YC_6i3NamyrKlIds0SKnWUMQLw_PFolSyGCpjVUJ6h_A1tnkXJ9VRcuQZTgjRa/n/MyNamespace/b/MyParBucket/o/OCI_User_Guide.pdf",
        "bucket-listing-action": null,
        "id": "vNObHUdqwf7pfCq9pup/LlMLTLxBt2N2OCKrGwimLFOoJlVfxj/dlESbxyd54vpf:OCI_User_Guide.pdf",
        "name": "MyObjectReadWritePAR",
        "object-name": "OCI_User_Guide.pdf",
        "time-created": "2021-04-01T14:37:26.869000+00:00",
        "time-expires": "2022-11-21T23:00:00+00:00"
      }
    }

    O URL da solicitação pré-autenticada exclusivo fornecido aos usuários para o exemplo anterior é criado da seguinte forma:

    https://objectstorage.region_ID.oraclecloud.comaccess_uri

    Por exemplo, veja o URL completo da solicitação que permite leituras e gravações em um objeto chamado OCI_User_Guide.pdf no bucket chamado MyParBucket:

    https://objectstorage.us-phoenix-1.oraclecloud.com/p/v0YC_6i3NamyrKlIds0SKnWUMQLw_PFolSyGCpjVUJ6h_A1tnkXJ9VRcuQZTgjRa/n/MyNamespace/b/MyParBucket/o/OCI_User_Guide.pdf

    Veja um exemplo de como usar curl para operações PUT para um objeto utilizando a solicitação pré-autenticada que permite leituras e gravações no objeto de destino chamado OCI_User_Guide.pdf no bucket chamado MyParBucket:

    $ curl -X PUT --data-binary '@OCI_User_Guide.pdf' https://objectstorage.us-phoenix-1.oraclecloud.com/p/v0YC_6i3NamyrKlIds0SKnWUMQLw_PFolSyGCpjVUJ6h_A1tnkXJ9VRcuQZTgjRa/n/MyNamespace/b/MyParBucket/o/OCI_User_Guide.pdf

    Veja um exemplo de como usar curl para operações GET para o objeto de destino usando a mesma solicitação pré-autenticada:

    $ curl -X GET https://objectstorage.us-phoenix-1.oraclecloud.com/p/v0YC_6i3NamyrKlIds0SKnWUMQLw_PFolSyGCpjVUJ6h_A1tnkXJ9VRcuQZTgjRa/n/MyNamespace/b/MyParBucket/o/OCI_User_Guide.pdf
    '@OCI_User_Guide.pdf'

    Criando uma Solicitação Pré-autenticada para um Objeto Específico com Prefixo

    Inclua o parâmetro object-name e o prefixo para criar uma solicitação pré-autenticada para todos os objetos cujos nomes correspondam ao prefixo especificado. Por exemplo, para criar uma solicitação autenticada que permita leituras e gravações em objetos com o prefixo service no bucket chamado MyParBucket:
    oci os preauth-request create --bucket-name MyParBucket --name PrefixedObjectsReadWritePAR --access-type AnyObjectReadWrite --object-name service --time-expires "2022-11-21T23:00:00+00:00" --bucket-listing-action ListObjects
    {  "data": {
        "access-type": "AnyObjectReadWrite",
        "access-uri": "/p/l04eqXvxQ5HcnrXkWS8Kdf4mS812KLDyG_dbArXa8hDdHssXTKiUD0w2HNCEDS4W/n/MyNamespace/b/MyParBucket/o/",
        "bucket-listing-action": "ListObjects",
        "id": "YOExDlFsNYBNEwF8Uo4aK8WHiz59enVQm1aID+4cxFobgcaofVbZkg371rxK+6Vb",
        "name": "PrefixedObjectsReadWritePAR",
        "object-name": "service",
        "time-created": "2021-04-01T15:35:40.609000+00:00",
        "time-expires": "2022-11-21T23:00:00+00:00"
      }
    }

    Especifique o prefixo a ser correspondente no parâmetro --object-name:

    • É possível especificar um prefixo que inclua uma ou mais barras (/) para corresponder a nomes de objeto que simulem uma hierarquia ou uma estrutura de diretório.
    • Você pode especificar uma string de prefixo sem um delimitador que corresponda aos caracteres mais à esquerda do nome do objeto.

    O URL da solicitação pré-autenticada exclusivo fornecido aos usuários para o exemplo anterior é criado da seguinte forma:

    https://objectstorage.<region_identifier>.oraclecloud.com<access-uri>

    Consulte Sobre Regiões e Domínios de Disponibilidade para obter a lista de identificadores de região válidos.

    Por exemplo, este é o URL completo da solicitação que permite leituras e gravações em objetos com o prefixo service no bucket chamado MyParBucket:

    https://objectstorage.us-phoenix-1.oraclecloud.com/p/l04eqXvxQ5HcnrXkWS8Kdf4mS812KLDyG_dbArXa8hDdHssXTKiUD0w2HNCEDS4W/n/MyNamespace/b/MyParBucket/o/

    Quando você cria uma solicitação pré-autenticada que limita o escopo a objetos com um prefixo específico, os usuários da solicitação só podem executar as operações GET e PUT para objetos com o nome do prefixo especificado na solicitação. Falha ao tentar executar a operação GET ou PUT para um objeto sem ou com outro prefixo.

    Veja aqui um exemplo de como usar curl para a operação PUT para um objeto usando a solicitação pré-autenticada que permite leituras e gravações em objetos com o prefixo service no bucket chamado MyParBucket:

    $ curl -X PUT --data-binary '@servicediscovery.dita' https://objectstorage.us-phoenix-1.oraclecloud.com/p/l04eqXvxQ5HcnrXkWS8Kdf4mS812KLDyG_dbArXa8hDdHssXTKiUD0w2HNCEDS4W/n/MyNamespace/b/MyParBucket/o/servicediscovery.dita
    

    Veja um exemplo de uso de curl para objetos GET usando a mesma solicitação pré-autenticada:

    $ curl -X GET https://objectstorage.us-phoenix-1.oraclecloud.com/p/l04eqXvxQ5HcnrXkWS8Kdf4mS812KLDyG_dbArXa8hDdHssXTKiUD0w2HNCEDS4W/n/MyNamespace/b/MyParBucket/o/
    {"objects":[{"name":"servicechanges.html"},{"name":"servicediscovery.dita"},{"name":"serviceessentials.html"},{"name":"servicelogreference.htm"},{"name":"services.html"}]}

    Observe que GET lista o PUT recente para servicediscovery.dita e todos os outros objetos com o prefixo service. Opcionalmente, você pode usar o parâmetro de consulta fields para incluir também os campos size (tamanho do objeto em bytes), etag, md5, timeCreated (data e hora da criação do objeto), timeModified (data e hora da modificação do objeto), storageTier e archivalState. Consulte Como Obter uma Lista de Objetos para obter mais detalhes.

    Veja aqui outro exemplo de como usar curl para operações PUT para um objeto usando a mesma solicitação pré-autenticada. A solicitação falha porque o objeto não tem um prefixo service:

    $ curl -X PUT --data-binary '@objectstoragelogreference.htm' https://objectstorage.us-phoenix-1.oraclecloud.com/p/l04eqXvxQ5HcnrXkWS8Kdf4mS812KLDyG_dbArXa8hDdHssXTKiUD0w2HNCEDS4W/n/MyNamespace/b/MyParBucket/o/objectstoragelogreference.htm
    {"code":"NotAuthenticated","message":"PAR does not exist"}

    Para obter uma lista completa de parâmetros e valores para comandos da CLI, consulte a Referência de Comando da CLI.

  • Execute a operação CreatePreauthenticatedRequest para criar uma solicitação pré-autenticada.