Use o comando cp para baixar recursos como arquivos, imagens e vídeos do Object Storage Service (OSS) para o computador local. Esse comando permite baixar vários objetos, limitar a velocidade de download ou obter versões específicas de objetos em um bucket com versionamento ativado.
Observações de uso
A partir da versão 1.6.16 do ossutil, use
ossutilcomo nome do binário na linha de comando, independentemente do sistema operacional. Se você usar uma versão anterior à 1.6.16, altere o nome do binário para corresponder ao seu sistema operacional. Para mais informações, consulte Referência de comandos do ossutil.
Permissões
Por padrão, uma conta Alibaba Cloud tem permissões totais sobre seus recursos. Um usuário ou função do Resource Access Management (RAM) não tem permissões por padrão. Conceda permissões a um usuário ou função RAM por meio de uma política do RAM ou de uma política de bucket.
|
Ação da API |
Descrição |
|
|
Necessária para baixar um objeto. |
|
|
Opcional. Necessária para baixar uma versão específica de um objeto de origem com a opção |
|
|
Opcional. Necessária se o objeto baixado estiver criptografado no lado do servidor com KMS. |
|
|
|
|
|
Opcional. Necessária para downloads em lote (operações recursivas). |
Sintaxe
ossutil cp cloud_url file_url [options]
|
Parâmetro |
Descrição |
|
cloud_url |
Caminho de origem do objeto no OSS. O formato é |
|
file_url |
Caminho de destino do arquivo local. Se o destino for um diretório, o caminho deve terminar com um separador (/ ou \). Exemplo: um caminho Linux é |
|
-r, --recursive |
Aplica a operação recursivamente a todos os objetos correspondentes sob o prefixo especificado. Caso contrário, a operação aplica-se apenas ao objeto único indicado. |
|
-f --force |
Força a execução da operação sem solicitar confirmação. |
|
-u,--update |
Baixa somente se o arquivo de destino não existir ou se a hora da última modificação do objeto de origem for posterior à do arquivo de destino. |
|
--maxdownspeed |
Velocidade máxima de download em KB/s. O valor padrão é 0, que indica ausência de limite de velocidade. |
|
--disable-ignore-error |
Desativa a ação de ignorar erros durante operações em lote. |
|
--only-current-dir |
Baixa apenas os objetos do diretório atual e ignora subdiretórios e seu conteúdo. |
|
--bigfile-threshold |
Limiar de tamanho em bytes para ativar o download retomável. Padrão: 100 MB Intervalo de valores: 0 a 9223372036854775807 |
|
--part-size |
Tamanho da parte em bytes. Por padrão, o ossutil calcula automaticamente um tamanho adequado com base no tamanho do objeto. Intervalo de valores: 1 a 9223372036854775807 |
|
--checkpoint-dir |
Diretório onde o ossutil armazena informações de checkpoint para downloads retomáveis. Se um download retomável falhar, o ossutil cria um diretório |
|
--range |
Baixa um intervalo específico de bytes do objeto e salva-o como um novo arquivo. A numeração dos bytes começa em zero.
|
|
--encoding-type |
Tipo de codificação do nome do objeto. Defina esta opção como url. Se não especificada, o nome do objeto não será codificado. |
|
--include |
Inclui todos os objetos que correspondem ao padrão especificado. Para mais informações, consulte opções include e exclude. |
|
--exclude |
Exclui todos os objetos que correspondem ao padrão especificado. Para mais informações, consulte opções include e exclude. |
|
--meta |
Define os metadados do objeto. O formato é |
|
--acl |
Lista de controle de acesso (ACL) do objeto. Valores válidos:
|
|
--snapshot-path |
Diretório onde as informações de snapshot são salvas durante o download. No próximo download, o ossutil lê essas informações desse diretório para executar um download incremental. |
|
--disable-crc64 |
Desativa a verificação de redundância cíclica de 64 bits (CRC-64). Por padrão, o ossutil ativa o CRC-64 para todas as transferências de dados. |
|
--payer |
Método de pagamento da solicitação. Para que o solicitante pague pelo tráfego e pelas solicitações geradas ao acessar o caminho especificado, defina esta opção como requester. |
|
--partition-download |
Especifica uma partição do objeto a ser baixada. O valor segue o formato |
|
-j,--job |
Número de tarefas simultâneas para operações com múltiplos objetos. Padrão: 3. Intervalo de valores: 1 a 10.000. |
|
--parallel |
Número de tarefas simultâneas para operações com um único objeto. Intervalo de valores: 1 a 10.000. Se esta opção não for definida, o ossutil determina o valor com base no tipo de operação e no tamanho do objeto. |
|
--version-id |
Baixa uma versão específica de um objeto. Use a opção --version-id apenas com buckets que tenham versionamento ativado. Para ativar o versionamento de um bucket, consulte bucket-versioning (Versionamento). |
|
--start-time |
Timestamp UNIX. Ao especificar esta opção, objetos com hora de última modificação anterior a este timestamp são ignorados. Nota
Apenas o ossutil 1.7.18 e versões posteriores suportam este parâmetro. Para mais informações sobre atualização, consulte update (Atualizar ossutil). |
|
--end-time |
Timestamp UNIX. Ao especificar esta opção, objetos com hora de última modificação posterior a este timestamp são ignorados. Nota
|
Para mais informações sobre outras opções comuns deste comando, consulte Opções comuns.
Se a concorrência padrão não atender às suas necessidades de desempenho, ajuste as opções -j, --jobs e --parallel para otimizar o desempenho. Por padrão, o ossutil calcula o número de paralelos com base no tamanho do objeto. Ao transferir objetos grandes em lote, a concorrência real corresponde ao número de jobs multiplicado pelo número de paralelos.
Se a instância ECS ou servidor que executa o comando tiver recursos limitados, como rede, memória ou CPU, recomenda-se definir a concorrência para um valor abaixo de 100. Caso esses recursos não estejam totalmente utilizados, aumente a concorrência.
Definir uma concorrência muito alta pode degradar o desempenho ou causar erros EOF devido à sobrecarga de troca de threads e competição por recursos. Ajuste as opções -j, --jobs e --parallel conforme os recursos da sua máquina. Durante testes de estresse, comece com valores baixos de concorrência e aumente-os gradualmente até encontrar a configuração ideal.
Exemplos
Os exemplos a seguir aplicam-se a sistemas Linux. Ajuste os parâmetros conforme seu sistema operacional e ambiente. Os exemplos consideram o seguinte cenário:
Nome do bucket:
examplebucketDiretório OSS:
destfolder/Diretório local:
localfolder/Arquivo local:
examplefile.txt
Baixar um único objeto
-
Baixe um objeto para um diretório específico mantendo seu nome original:
ossutil cp oss://examplebucket/destfolder/examplefile.txt localfolder/ -
Baixe um objeto para um diretório específico e renomeie-o para
example.txt:ossutil cp oss://examplebucket/destfolder/examplefile.txt localfolder/example.txt
Download em lote
-
Use a opção
-rpara baixar o diretóriodestfolder, incluindo todos os seus subdiretórios e objetos.ossutil cp -r oss://examplebucket/destfolder/ localfolder/ -
Use a opção
--only-current-dirpara baixar apenas os objetos do diretório atual, ignorando quaisquer subdiretórios.ossutil cp oss://examplebucket/destfolder/ localfolder/ --only-current-dir -r -
Use a opção
-upara baixar apenas objetos inexistentes localmente ou atualizados no OSS. Esta opção ignora o download caso já exista um arquivo local com o mesmo nome e a mesma data de última modificação.ossutil cp -r -u oss://examplebucket/destfolder/ localfolder/
Baixar objetos condicionais
-
Baixe todos os objetos que não estão no formato JPG dentro do diretório
destfolder:ossutil cp -r oss://examplebucket/destfolder/ localfolder/ --exclude "*.jpg" -
Baixe objetos do diretório
destfolderque contenhamabcem seus nomes, mas que não estejam nos formatos JPG ou TXT:ossutil cp -r oss://examplebucket/destfolder/ localfolder/ --include "*abc*" --exclude "*.jpg" --exclude "*.txt"
Limitar a velocidade de download
Use a opção --maxdownspeed para limitar a velocidade de download a 1 MB/s (1.024 KB/s).
ossutil cp -r oss://examplebucket/destfolder/ localfolder/ --maxdownspeed 1024
Download por intervalo
Use a opção --range para baixar os bytes de 10 a 20 do arquivo examplefile.txt para o computador local.
ossutil cp oss://examplebucket/destfolder/examplefile.txt localfolder/ --range 10-20
Baixar objetos dentro de um intervalo de tempo especificado
Use as opções --start-time e --end-time para baixar apenas os objetos do diretório destfolder cuja última modificação ocorreu entre 10:09:18 de 31 de outubro de 2023 (UTC+8) e 12:55:58 de 31 de outubro de 2023 (UTC+8).
ossutil cp -r oss://examplebucket/destfolder/ localfolder/ --start-time 1698718158 --end-time 1698728158
Baixar uma versão específica de um objeto
Primeiro, use o comando ls --all-versions para obter todos os IDs de versão do objeto. Em seguida, use a opção --version-id para baixar uma versão específica.
A opção --version-id só pode ser usada para objetos em um bucket com versionamento ativado. Para ativar o versionamento de um bucket, consulte bucket-versioning (Versionamento).
ossutil cp oss://examplebucket/test.jpg localfolder/ --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3MDRk
Baixar objetos e gerar informações de snapshot
Use a opção --snapshot-path para gerar informações de snapshot dos objetos baixados em um diretório especificado. Ao executar um comando de download subsequente com esta opção, o ossutil lê as informações de snapshot do diretório para executar um download incremental. Para mais informações, consulte Enviar objetos e gerar snapshots.
ossutil cp -r oss://examplebucket/destfolder/ localfolder/ --start-time 1698718158 --end-time 1698728158
Download entre contas ou entre regiões
Use as opções comuns -e, -i e -k para baixar um objeto de um bucket pertencente a outra conta e localizado na região China (Shanghai).
Especifique o Endpoint correspondente à região onde o bucket está localizado. Para mais informações, consulte Regiões e Endpoints.
ossutil cp oss://examplebucket/exampleobject.txt localfolder/ -e oss-cn-shanghai.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret