Usando a CLI

Este tópico descreve como usar a CLI para acessar o Oracle Cloud Infrastructure e executar tarefas relacionadas aos serviços. Esse tópico pressupõe que você configurou a CLI e está pronto para começar a usá-la.

Dica

A CLI tem um modo interativo que fornece a conclusão automática do comando e informações e sugestões de parâmetros. Para obter mais informações, consulte Usando o Modo Interativo.

Para explorar ainda mais, Conceitos Básicos da Interface de Linha de Comando fornece um passo a passo do uso da CLI para iniciar uma instância.

Sintaxe da Linha de Comando

A maioria dos comandos deve especificar um serviço, seguido de um tipo de recurso e uma ação. A sintaxe básica da linha de comando é:

oci <service> <type> <action> <options>

Por exemplo, essa sintaxe é aplicada da seguinte forma:

  • compute é o <serviço>
  • instance é o <tipo> de recurso
  • launch é a <ação> e
  • o restante da string de comando consiste em <opções>.

O comando a seguir usado para iniciar uma instância mostra uma construção típica de linha de comando.

oci compute instance launch --availability-domain "EMIr:PHX-AD-1" -c ocid1.compartment.oc1..aaaaaaaal3gzijdlieqeyg35nz5zxil26astxxhqol2pgeyqdrggnx7jnhwa --shape "VM.Standard1.1"   --display-name "Instance 1 for sandbox" --image-id ocid1.image.oc1.phx.aaaaaaaaqutj4qjxihpl4mboabsa27mrpusygv6gurp47kat5z7vljmq3puq --subnet-id  ocid1.subnet.oc1.phx.aaaaaaaaypsr25bzjmjyn6xwgkcrgxd3dbhiha6lodzus3gafscirbhj5bpa

No exemplo anterior, você pode fornecer um nome amigável para a instância usando a opção --display-name. Evite digitar informações confidenciais.

Exemplos Básicos

Esta seção fornece exemplos de operações básicas usando a CLI.

Observação

Usando Variáveis de Ambiente para OCIDs

Vários dos exemplos de CLI utilizam variáveis de ambiente para OCIDs, como:

  • $T para o OCID de uma tenancy
  • $C para o OCID de um compartimento

Por exemplo:

T=ocid1.tenancy.oc1..aaaaaaaaba3pv6wm2ytdrwrx32uzr4h25vkcr4jqae5f15p2b2qstifsfdsq
C=ocid1.compartment.oc1..aaaaaaaarhifmvrvuqtye5q66rck6copzqck3ukc5fldrwpp2jojdcypxfga

Para obter um namespace, execute o comando a seguir.

oci os ns get

Para listar compartimentos, execute o comando a seguir.

oci iam compartment list -c $T

Para obter uma lista de buckets, execute o comando a seguir.

oci os bucket list -ns mynamespace --compartment-id $C

Para listar usuários e limitar a saída, execute o comando a seguir.

oci iam user list --compartment-id $T --limit 5

Para adicionar um usuário a um grupo, execute o comando a seguir.

oci iam group add-user --user-id ocid1.user.oc1..aaabcaaaxkkhhtmghvqqq7rgvzwuj3drwmtlsgz6sbfo7y4uc5sprzli377q --group-id ocid1.group.oc1..aaabcaaa66plootq6uuwwxhfdw2lsdqtgeb6l4pjsv5eeuenxrauujj35b7b

Obtendo Ajuda com Comandos

Você pode obter ajuda para qualquer comando usando --help, -h ou -?. Por exemplo:

oci --help
oci os bucket -h
oci os bucket create -?

Exibindo toda a Ajuda da CLI

Você pode exibir a ajuda da linha de comando.

Determinando a Versão Instalada da CLI

Para obter a versão instalada da CLI, execute o comando a seguir.

oci --version

Autenticando com Principais de Instâncias

Principais da instância é um recurso de serviço do IAM que permite que as instâncias sejam atores autorizados (ou principais) a executar ações em recursos do serviços. Cada instância de computação tem sua própria identidade e autentica usando os certificados que são adicionados a ela. Esses certificados são criados automaticamente, designados a instâncias e rotacionados, evitando que você distribua as credenciais para seus hosts e as rotacione.

Para ativar a autorização do controlador de instâncias na CLI, você pode definir a opção de autorização (--auth) em relação a um comando.

Por exemplo:

 oci os ns get --auth instance_principal

Você também pode ativar a autorização de principal da instância definindo a variável de ambiente OCI_CLI_AUTH.

Por exemplo:
OCI_CLI_AUTH=instance_principal
Observação

O conjunto de valores para o parâmetro --auth tem precedência sobre a variável de ambiente.

Para obter mais informações sobre principais de instância, consulte Chamando Serviços de uma Instância.

Usando um Servidor Proxy

A CLI usa solicitações HTTP para fazer chamadas para os serviços do Oracle Cloud Infrastructure. Se precisar usar um servidor proxy para enviar solicitações HTTP em seu ambiente, você poderá usar um dos seguintes métodos:

Usar o parâmetro --proxy na linha de comando

Você pode especificar um servidor proxy na linha de comando incluindo o parâmetro --proxy ao chamar um comando da CLI.

Por exemplo:

oci os ns get --proxy https://<add your proxy URL here>/

Adicionar uma entrada de proxy ao arquivo de configuração da CLI

Para obter detalhes, consulte Especificando um Servidor Proxy.

Usar variáveis de ambiente

Defina as variáveis de ambiente HTTP_PROXY e HTTPS_PROXY para apontar para o servidor proxy.

Por exemplo, no Linux:
https_proxy=https://<add your proxy URL here>/
http_proxy=http://<add your proxy URL here>/
No Windows, usando o PowerShell:
$Env:http_proxy = "http://<add your proxy URL here>/"

Usando Datas e Horários nos Comandos da CLI

A CLI suporta os formatos de data aceitos a seguir.

  • UTC com milissegundos

    Format: YYYY-MM-DDTHH:mm:ss.sssTZD, Example: 2017-09-15T20:30:00.123Z
  • UTC sem milissegundos

    Format: YYYY-MM-DDTHH:mm:ssTZD, Example: 2017-09-15T20:30:00Z
  • UTC com precisão de minuto

    Format: YYYY-MM-DDTHH:mmTZD, Example: 2017-09-15T20:30Z
  • Fuso horário com milissegundos

    Format: YYYY-MM-DDTHH:mm:ss.sssTZD, Example: 2017-09-15T12:30:00.456-08:00
  • Fuso horário sem milissegundos

    Format: YYYY-MM-DDTHH:mm:ssTZD, Example: 2017-09-15T12:30:00-08:00
  • Fuso horário com diferença de horário e precisão de minutos

    Format: YYYY-MM-DDTHH:mmTZD, Example: 2017-09-15T12:35-08:00
  • Somente Data (Essa data será considerada meia-noite em UTC do dia em questão)

    Format: YYYY-MM-DD, Example: 2017-09-15
  • Época em segundos

    Example: 1412195400
Observação

Nos nossos formatos de data e hora, o T pode ser substituído por um espaço. Por exemplo, "2017-09-15 20:30:00.123Z" e 2017-09-15T20:30:00.123Z são aceitáveis. (Observe que se você não incluir o T, deverá encapsular o valor entre aspas.) Também suportamos fusos horários com e sem os dois-pontos. Tanto +10:00 quanto +1000 são aceitáveis.

Gerenciando a Entrada e a Saída da CLI

A CLI fornece várias opções para gerenciar a entrada e a saída de comandos.

Especificando uma Entrada Complexa

Entradas complexas, como arrays e objetos com mais de um valor, são especificadas no formato JSON e podem ser fornecidas como uma string na linha de comando, como um arquivo ou como uma string de linha de comando e como um arquivo.

MacOS, Linux ou Unix

O comando a seguir mostra como especificar dois valores para o objeto --metadata.

oci os bucket create -ns mynamespace --name mybucket --metadata '{"key1":"value1","key2":"value2"}' --compartment-id ocid1.compartment.oc1..<example>

Windows

No Windows, para especificar uma entrada complexa na CLI como uma string JSON, você deve colocar o bloco inteiro entre aspas duplas. Dentro do bloco, cada aspa dupla para as strings de chave e valor deve ter uma barra invertida (\) como caractere de escape.

O comando a seguir mostra como especificar dois valores para o objeto --metadata no Windows.

oci os bucket create -ns mynamespace --name mybucket --metadata "{\"key1\":\"value1\",\"key2\":\"value2\"}" --compartment-id ocid1.compartment.oc1..<example>
Observação

Erros de JSON

A mensagem de erro "O parâmetro '<PARAMETER NAME>' deve estar no formato JSON. " indica que o valor informado para o parâmetro com o nome "PARAMETER NAME" não tem um formato JSON válido. Em geral, esse erro é resultado do fato de a string JSON não ter um caractere de escape correto.

Para obter mais informações sobre o uso de strings JSON, consulte Opções Avançadas para JSON

Saída de Formato como uma Tabela

Por padrão, todas as respostas a um comando são retornadas no formato JSON. Por exemplo, uma resposta como mostrada a seguir é retornada quando você executa o comando para obter uma lista de regiões.

{
  "data": [
    {
      "key": "FRA",
      "name": "eu-frankfurt-1"
    },
    {
      "key": "IAD",
      "name": "us-ashburn-1"
    },
    {
      "key": "ICN",
      "name": "ap-seoul-1"
    },
    {
      "key": "PHX",
      "name": "us-phoenix-1"
    },
    {
      "key": "LHR",
      "name": "uk-london-1"
    },
    {
      "key": "NRT",
      "name": "ap-tokyo-1"
    },			
    {
      "key": "YYZ",
      "name": "ca-toronto-1"
    }				
  ]
}

Em alguns casos, a legibilidade pode se tornar um problema, que é facilmente resolvido quando se formata uma resposta como uma tabela. Para obter uma resposta a um comando formatado como uma tabela, execute o comando a seguir.

oci iam region list --output table

O exemplo de lista de regiões a seguir é retornado como uma tabela de duas colunas.


+-----+----------------+
| key | name           |
+-----+----------------+
| FRA | eu-frankfurt-1 |
| IAD | us-ashburn-1   |
| ICN | ap-seoul-1     |
| PHX | us-phoenix-1   |
| NRT | ap-tokyo-1     |				
| LHR | uk-london-1    |
| YYZ | ca-toronto-1   |  
+-----+----------------+

Usando Consultas

Você pode filtrar a saída usando a opção --query para JSON. Esta opção usa a linguagem de consulta JMESPath para JSON.

A filtragem é muito útil para lidar com grandes volumes de saída. Por exemplo, o comando a seguir retorna uma lista de todos os compartimentos:

oci iam compartment list --all

Esse comando retorna muitas informações. Alguns dos campos retornados incluem id do compartimento, nome, estado do ciclo de vida e tags definidas.

Selecionando Campos para Exibição

Você pode selecionar apenas os campos desejados especificando o nome do array e o nome de um ou mais campos, informados como um array delimitado por vírgulas:

<name of the array>[].[<the name of the field>]
Observação

  • Os nomes dos campos fazem distinção entre maiúsculas e minúsculas. Forneça o nome do campo exatamente como especificado no objeto JSON.
  • Se nomes de campo não existentes forem especificados, a consulta incluirá null na saída.
  • Se os nomes de campo contiverem caracteres especiais ou espaços, coloque o nome do campo entre aspas duplas com escape (\" para bash ou \`" para PowerShell).
Por exemplo, para retornar apenas o nome do compartimento e o estado do ciclo de vida:
oci iam compartment list --all --query "data[].[name, \"lifecycle-state\"]"
Isso retornará uma saída semelhante à seguinte:
[ 
  [
    "ATestCompartment",
    "ACTIVE"
  ],
  
  [
    "blocktest",
    "ACTIVE"
  ],
  [
    "ZestyTest",
    "ACTIVE"
  ]
]
Também é possível recuperar informações como objetos com nomes de campos personalizados:
<name of the array>[].{<your custom name>:<the name of the field>}
Por exemplo:
oci iam compartment list --all --query "data[].{Name:name, \"LifecycleState\":\"lifecycle-state\"}"
Isso retornará uma saída semelhante à seguinte:

[
  {
    "LifecycleState": "ACTIVE",
    "Name": "ATestCompartment"
  },
  {
    "LifecycleState": "ACTIVE",
    "Name": "blocktest"
  },
  {
    "LifecycleState": "ACTIVE",
    "Name": "ZestyTest"
  }
]

Especificando Condições de Pesquisa

Você pode especificar uma condição de pesquisa para as informações retornadas. Por exemplo, para retornar apenas um compartimento chamado blocktest:
oci iam compartment list --all --query "data[?name=='blocktest']"
Informações semelhantes às seguintes serão retornadas:
[
  {
    "compartment-id": "ocid1.tenancy.oc1..<example_value>",
    "defined-tags": {
      "MySpecialTag": {
        "Phonebook": "software-development-kit"
      }
    },
    "description": "Compartment used by integration tests. 10000",
    "freeform-tags": {},
    "id": "ocid1.compartment.oc1..<example>",
    "inactive-status": null,
    "is-accessible": null,
    "lifecycle-state": "ACTIVE",
    "name": "blocktest",
    "time-created": "2018-06-19T17:08:46.059000+00:00"
  }
]
Você pode especificar várias condições de pesquisa. O exemplo a seguir recupera o nome e o status do ciclo de vida dos compartimentos criados antes de 2019 que têm a tag MySpecialTag:
oci iam compartment list --all --query "data[?\"time-created\"<'2019'&&\"defined-tags\".MySpecialTag!=null].[name, \"lifecycle-state\"]"
Este comando retornará uma saída semelhante à seguinte:
[
  [
    "blocktest",
    "ACTIVE"
  ]
]

Para obter mais informações sobre a linguagem de consulta JMESPath para JSON, consulte JMESPath.

Opções Avançadas de JSON

Você pode obter o formato JSON correto para comandos e opções de comando.

  • Para uma opção de comando, use --generate-param-json-input e especifique a opção de comando para a qual você deseja obter o formato JSON. Para gerar o formato JSON usado na criação ou na atualização de uma regra de segurança, execute o comando a seguir.

    oci network security-list create --generate-param-json-input ingress-security-rules
  • Para um comando inteiro, use --generate-full-command-json-input. Para gerar o formato JSON usado para iniciar uma instância, execute o comando a seguir.

    oci compute instance launch --generate-full-command-json-input

Ordem de Precedência para Entradas JSON

A CLI oferece suporte à combinação de argumentos com entradas de arquivo na linha de comando. No entanto, se os mesmos valores forem fornecidos em um arquivo e na linha de comando, a linha de comando terá precedência.

Usando um Arquivo JSON para Entrada Complexa

É possível especificar uma entrada complexa por meio de um arquivo fazendo referência a ela na linha de comando. Para usuários do Windows, isso remove a necessidade de ter um caractere de escape para texto JSON. Você fornece um caminho para o arquivo usando o prefixo file://.

Tipos de Caminho

Usando testfile.json como um exemplo, os tipos de caminhos a seguir são suportados.

  • Caminhos relativos do mesmo diretório, por exemplo: file://testfile.json e file://relative/path/to/testfile.json
  • Caminhos absolutos no Linux, MacOS ou Unix; por exemplo: file:///absolute/path/to/testfile.json
  • Caminhos de arquivos completos no Windows; por exemplo: file://C:\path\to\testfile.json
Observação

Expansões de Caminho de Arquivo

Expansões de caminho de arquivo, como "~/", "./" e "../", são suportadas. No Windows, a expressão "~/" expande para o seu diretório de usuário, que é armazenado na variável de ambiente %USERPROFILE%. O uso de variáveis de ambiente nos caminhos também é suportado.

Localização dos Arquivos

São suportadas as localizações a seguir para os arquivos.

  • O seu diretório home.

    oci os bucket create -ns mynamespace --name mybucket --compartment-id ocid1.compartment.oc1..aaaaaaaarhifmvrvuqtye5q66rck6copzqck3ukc5fldrwpp2jojdcypxfga --metadata file://~/testfile.json
  • O diretório atual.

    oci os bucket create -ns mynamespace --name mybucket --compartment-id ocid1.compartment.oc1..aaaaaaaarhifmvrvuqtye5q66rck6copzqck3ukc5fldrwpp2jojdcypxfga --metadata file://testfile.json
  • O diretório/tmp (Linux, Unix ou MacOS).

    oci os bucket create -ns mynamespace --name mybucket --compartment-id ocid1.compartment.oc1..aaaaaaaarhifmvrvuqtye5q66rck6copzqck3ukc5fldrwpp2jojdcypxfga --metadata file:///tmp/testfile.json
  • O diretório C:\temp (Windows).

    oci os bucket create -ns mynamespace --name mybucket --compartment-id ocid1.compartment.oc1..aaaaaaaarhifmvrvuqtye5q66rck6copzqck3ukc5fldrwpp2jojdcypxfga --metadata file://C:\temp\testfile.json

Exemplos do Uso de um Arquivo JSON como Entrada

Os exemplos nesta seção usam o formato JSON gerado para uma opção de comando e um comando inteiro. O formato JSON é salvo em um arquivo, editado e usado como entrada de linha de comando.

Usar Entrada de Arquivo para uma Opção de Comando

Este exemplo detalhado mostra como gerar o formato JSON para uma opção de id da lista de segurança usada para criar uma sub-rede. O formato JSON é salvo em um arquivo, editado e usado como entrada de linha de comando.

Resposta do Comando

[
  {
    "icmpOptions": {
      "code": 0,
      "type": 0
      },
    "isStateless": true,
    "protocol": "string",
    "source": "string",
    "tcpOptions": {
    "destinationPortRange": {
      "max": 0,
      "min": 0
      },
    "sourcePortRange": {
      "max": 0,
      "min": 0
      }
    },
    "udpOptions": {
    "destinationPortRange": {
      "max": 0,
      "min": 0
      },
    "sourcePortRange": {
      "max": 0,
      "min": 0
      }
    }
    },
    {
    "icmpOptions": {
      "code": 0,
      "type": 0
      },
    "isStateless": true,
    "protocol": "string",
    "source": "string",
    "tcpOptions": {
    "destinationPortRange": {
      "max": 0,
      "min": 0
      },
    "sourcePortRange": {
      "max": 0,
      "min": 0
      }
    },
    "udpOptions": {
    "destinationPortRange": {
      "max": 0,
      "min": 0
      },
    "sourcePortRange": {
      "max": 0,
      "min": 0
      }
    }
  }
]
Resposta do Comando
{
  "assignPublicIp": true,
  "availabilityDomain": "string",
  "compartmentId": "string",
  "displayName": "string",
  "extendedMetadata": {
  "string1": {
    "string1": "string",
    "string2": "string"
   },
  "string2": {
    "string1": "string",
    "string2": "string"
   }
  },
  "hostnameLabel": "string",
  "imageId": "string",
  "metadata": {
    "string1": "string",
    "string2": "string"
    },
  "privateIp": "string",
  "shape": "string",
  "skipSourceDestCheck": true,
  "subnetId": "string",
  "vnicDisplayName": "string"
}
Usar um Arquivo JSON como Entrada para uma Opção de Lista de Segurança
  1. Ao gerar o formato JSON para a opção security-list-ids, execute o comando a seguir.

    oci network subnet create --generate-param-json-input security-list-ids
  2. Crie um arquivo e adicione o conteúdo a seguir, que foi retornado na etapa 1. Esse conteúdo não precisa ter escape ou estar em uma única linha. Ele deve conter um formato JSON válido.

    [
      "string",
      "string"
    ]
  3. Edite o arquivo e substitua os valores "string" por valores, conforme mostrado no exemplo a seguir.

    [
      "ocid1.securitylist.oc1.phx.aaaaaaaaw7c62ybv4676muq5tdrwup3v2maiquhbkbh4sf75tjcf5dm6kvlq",
      "ocid1.securitylist.oc1.phx.aaaaaaaa7snx4jh5drwo2h33rwcdqev6elir55hnrhi2yfndjfons5rcqk4q"
    ]
  4. Salve o arquivo como "security-list.json".
  5. Para criar a sub-rede usando "security-list.json" como entrada, execute o comando a seguir.

    oci network subnet create --vcn-id ocid1.vcn.oc1.phx.aaaaaaaa6wmuahgxejkv7ukyruqdrwlmrumtl6vyisxxxavagiqw2eeet2sa -c ocid1.compartment.oc1..aaaaaaaal3gzijdliedxxhqol2rggndrwyg35nz5zxil26astpgeyq7jnhwa  --availability-domain "EMIr:PHX-AD-1" --display-name TESTSUB --dns-label "testinstances" --cidr-block "10.0.0.0/16" --security-list-ids file://security-list.json

Usar Entrada de Arquivo para um Comando Inteiro

Esse exemplo detalhado mostra como gerar o formato JSON para criar uma rede virtual na nuvem (VCN). O formato JSON é salvo em um arquivo, editado e usado como entrada de linha de comando.

Usar um Arquivo JSON como Entrada para Criar uma VCN
  1. Para gerar o formato JSON necessário para criar uma VCN, execute o comando a seguir.

    oci network vcn create --generate-full-command-json-input
  2. Crie um arquivo e adicione o conteúdo a seguir, que foi retornado na etapa 1. Esse conteúdo não precisa ter escape ou estar em uma única linha. Ele deve conter um formato JSON válido.

    {
      "cidrBlock": "string",
      "compartmentId": "string",
      "displayName": "string",
      "dnsLabel": "string"
    }
  3. Edite o arquivo e substitua os valores "string" por valores, conforme mostrado no exemplo a seguir.

    {
      "cidrBlock": "10.0.0.0/16",
      "compartmentId": "ocid1.compartment.oc1..aaaaaaaal3gzijdliedxxhqol2rggndrwyg35nz5zxil26astpgeyq7jnhwa",
      "displayName": "TestVCN",
      "dnsLabel": "testdns"
    }
  4. Salve o arquivo e atribua o nome "create-vcn.json" a ele.
  5. Para criar a VCN usando "create-vcn.json" como entrada, execute o comando a seguir.
    oci network vcn create --from-json file://create-vcn.json 

Exemplos Avançados

Os exemplos a seguir mostram como usar a CLI para concluir tarefas complexas no Oracle Cloud Infrastructure.

Como Trabalhar com o Serviço Object Storage

Você pode usar a CLI para várias operações de objeto com o serviço Object Storage.

Fazendo o Upload e o Download de Arquivos

É possível fazer o upload de objetos de um arquivo ou da linha de comandos (STDIN). Também é possível baixá-los por download para um arquivo ou para a linha de comandos (STDOUT).

Upload de um objeto:

oci os object put -ns mynamespace -bn mybucket --name myfile.txt --file /Users/me/myfile.txt --metadata '{"key1":"value1","key2":"value2"}'

Upload do conteúdo do objeto da linha de comandos (STDIN):

oci os object put -ns mynamespace -bn mybucket --name myfile.txt --file <--'object content'

Download de um objeto:

oci os object get -ns mynamespace -bn mybucket --name myfile.txt --file /Users/me/myfile.txt

Impressão do conteúdo do objeto na linha de comandos (STDOUT):

oci os object get -ns mynamespace -bn mybucket --name myfile.txt --file -

Operações em Massa no Serviço Object Storage

A CLI suporta as seguintes operações em massa no serviço Object Storage:

  • Fazendo o upload de arquivos de um diretório e de todos os seus subdiretórios em um bucket

    # Upload all the files in a directory.
    oci os object bulk-upload -ns mynamespace -bn mybucket --src-dir path/to/upload/directory
  • Fazendo o download de todos os objetos, ou de todos os objetos que correspondem a um prefixo especificado, em um bucket

    # Download all the objects.
    oci os object bulk-download -ns mynamespace -bn mybucket --download-dir path/to/download/directory
    						
    # Download all the objects that match the specified prefix.
    oci os object bulk-download -ns mynamespace -bn mybucket --download-dir path/to/download/directory --prefix myprefix
  • Excluindo todos os objetos, ou todos os objetos que correspondem a um prefixo especificado, em um bucket

    # Delete all the objects.
    oci os object bulk-delete -ns mynamespace -bn mybucket
    			
    # Delete objects that match the specified prefix.
    oci os object bulk-delete -ns mynamespace -bn mybucket --prefix myprefix

As operações em massa suportam várias opções que permitem:

  • Substituir ou ignorar arquivos/objetos usando --overwrite ou --no-overwrite. ( Observação: se você não especificar essas opções, deverá confirmar cada vez que houver algo a ser substituído.)
  • Limitar as operações de exclusão, upload ou download usando --prefix e/ou --delimiter
  • Visualizar uma exclusão em massa com --dry-run

Para obter mais informações sobre os comandos para operações em massa, execute os seguintes comandos de ajuda:

# bulk-upload
oci os object bulk-upload -h
				
# bulk-download
oci os object bulk-download -h
				
# bulk-delete
oci os object bulk-delete -h

Operações com Várias Partes no Serviço Object Storage

As operações com várias partes do serviço Object Storage incluem uploads e downloads de objetos.

Uploads em Várias Partes

É possível fazer upload de arquivos grandes no serviço Object Storage em várias partes para acelerar a operação. Por padrão, o upload de arquivos com mais de 128 MiB utiliza operações com várias partes. É possível substituir esse padrão usando a opção --no-multipart.

Você pode configurar as seguintes opções para o comando oci os object put:

  • --no-multipart substitui um upload de várias partes automático se o objeto for maior que 128 MiB. O objeto é carregado como uma única parte, independentemente do tamanho.
  • --part-size em MiB, para ser usado em uma operação com várias partes. O tamanho padrão da parte é 128 MiB, e o tamanho de parte especificado deve ser maior que 10 MiB. Se o objeto for maior que --part-size, o upload ocorrerá em várias partes.
  • --parallel-upload-count, para especificar o número de operações paralelas a serem executadas. Você pode usar esse valor para equilibrar recursos e tempos de upload. Um valor mais alto pode melhorar o tempo das operações, mas consome mais recursos do sistema e largura de banda da rede. O valor padrão é 10.

O comando --resume-put permite retomar o upload de um arquivo grande que tenha sido interrompido.

Observação

Uploads em Várias Partes por Meio de STDIN

Os objetos carregados por meio de STDIN são carregados em várias partes. Se o conteúdo do objeto for menor que 10 MiB, o upload será de apenas uma parte, e a API MultipartUpload será usada para o upload. A especificação de --no-multipart durante o upload por meio de STDIN resultará em um erro.

O exemplo a seguir mostra o comando para um upload em várias partes se o objeto for maior que 200 MiB.

oci os object put -ns my-namespace -bn my-bucket --file path/to/large/file --part-size 200

Para obter mais informações sobre uploads em várias partes, consulte Usando Uploads em Várias Partes.

Downloads em Várias Partes

É possível fazer o download de arquivos grandes do Object Storage em várias partes para acelerar a operação.

Você pode configurar as seguintes opções para o comando oci os object get:

  • --multipart-download-threshold permite especificar o tamanho, em MiB, para que o download de um objeto ocorra em várias partes. Esse tamanho deve ser pelo menos 128 MiB.
  • --part-size, em MiB, a ser usado para uma parte do download. Isso proporciona a flexibilidade de usar mais (tamanho menor) ou menos partes (tamanho maior), conforme apropriado para os seus requisitos. Por exemplo, poder de computação e largura de banda da rede. O tamanho mínimo padrão da parte é 120 MiB.
  • --parallel-download-count permite especificar quantas partes terão download ao mesmo tempo. Um valor mais alto pode melhorar o tempo das operações, mas consome mais recursos do sistema e largura de banda da rede. O valor padrão é 10.

O exemplo a seguir mostra o comando para fazer o download de qualquer objeto com um tamanho maior que 500 MiB. O download do objeto é feito em partes de 128 MiB.

oci os object get -ns my-namespace -bn my-bucket --name my-large-object --multipart-download-threshold 500 --part-size 128