Para enviar arquivos locais, imagens, vídeos ou outros recursos para o OSS — inclusive arquivos grandes — use o comando cp do ossutil.
Observações importantes
O envio de arquivos exige as permissões
oss:PutObject,oss:ListPartseoss:AbortMultipartUpload. Para mais detalhes, consulte Grant custom permission policies to RAM users.O upload em lote é compatível apenas quando a origem é um diretório.
A opção
--snapshot-path, disponível no ossutil 1.0, foi removida no ossutil 2.0. Para realizar uploads incrementais, use a opção-u(--update).Ao usar a opção
-u, --update, o sistema envia pelo menos uma requisição HEAD para cada arquivo a fim de compará-lo com o objeto de destino, independentemente da existência desse objeto. Em cenários com poucas alterações de dados, isso gera muitas requisições ineficientes, o que pode degradar o desempenho e gerar custos adicionais. Avalie cuidadosamente suas necessidades de negócio antes de usar esta opção para evitar consumo desnecessário de recursos.
Sintaxe do comando
ossutil cp source dest [flags]
A partir do ossutil 2.3.0, você pode configurar as opções
--job,--parallel,--bigfile-threshold,--part-sizee--write-buffer-sizepor meio de um arquivo de configuração. Adicione-as no formatokey=value(por exemplo,job=10) na seção de perfil correspondente do arquivo de configuração ou defina-as usandoossutil config set. As opções de linha de comando têm precedência sobre as configurações do arquivo.A partir do ossutil 2.4.0, a opção
--enable-symlink-dirpermite o upload de subdiretórios com links simbólicos por meio do comando cp.
|
Parâmetro |
Tipo |
Descrição |
|
source |
string |
Caminho do arquivo local. Aceita caminhos relativos, absolutos e |
|
dest |
string |
Caminho do arquivo no bucket de destino. Exemplo: |
|
--acl |
string |
Permissões de acesso ao objeto. Valores válidos:
|
|
--bandwidth-limit |
SizeSuffix |
Limita a largura de banda da rede para controlar a taxa de transferência de dados. O valor mínimo é 1024 B/s. A unidade padrão é B/s. Ao definir este parâmetro, especifique uma unidade conforme necessário. As unidades válidas incluem B (bytes), K (kilobytes), M (megabytes) e G (gigabytes). Por exemplo, 50 M define o limite de largura de banda para 50 MB/s. |
|
--bigfile-threshold |
SizeSuffix |
Limiar (em bytes) para ativar o upload, download ou cópia multipart para arquivos grandes. Valor padrão: 104857600. Nota
Compatível com configurações via arquivo de configuração a partir do ossutil 2.3.0. |
|
--cache-control |
string |
Define o comportamento de cache quando o navegador web baixa o objeto. |
|
--content-disposition |
string |
Especifica como exibir o objeto. |
|
--content-encoding |
string |
Declara o método de codificação do objeto. |
|
--content-type |
string |
Tipo de conteúdo do objeto. |
|
--copy-props |
string |
Determina quais propriedades copiar do objeto de origem. Valores válidos:
|
|
--checkpoint-dir |
string |
|
|
-d, --dirs |
string |
Lista arquivos e subdiretórios no diretório atual sem listar recursivamente todos os arquivos nos subdiretórios. |
|
--encoding-type |
string |
Método de codificação para nomes de objetos ou arquivos de entrada. Valor válido: url. |
|
--end-with |
string |
Retorna objetos anteriores ou correspondentes ao valor especificado em ordem alfabética. |
|
--exclude |
stringArray |
Regras de exclusão para caminhos ou nomes de arquivos. |
|
--exclude-from |
stringArray |
Lê regras de exclusão de um arquivo de regras. |
|
--expires |
stringArray |
Especifica o tempo absoluto de expiração para conteúdo em cache. |
|
--files-from |
stringArray |
Lê uma lista de nomes de arquivos de origem a partir de um arquivo, ignorando linhas vazias e comentários. Aplica-se apenas a cenários de filtragem. |
|
--files-from-raw |
stringArray |
Lê uma lista de nomes de arquivos de origem a partir de um arquivo. Aplica-se apenas a cenários de filtragem. |
|
--filter |
stringArray |
Regras de filtragem para caminhos ou nomes de arquivos. |
|
--filter-from |
stringArray |
Lê regras de filtragem de um arquivo de regras. |
|
-f, --force |
/ |
Força a operação sem solicitar confirmação. |
|
--include |
stringArray |
Regras de inclusão para caminhos ou nomes de arquivos. Nota
Para mais informações sobre opções de filtragem, consulte Filtering options. |
|
--include-from |
stringArray |
Lê regras de inclusão de um arquivo de regras. |
|
-j, --job |
int |
Número de tarefas concorrentes. Valor padrão: 3. Nota
|
|
--listObjects |
/ |
Usa a API ListObjects para listar objetos. |
|
--max-size |
SizeSuffix |
Tamanho máximo de arquivo para transferir. A unidade padrão é bytes. Você também pode usar sufixos: B|K|M|G|T|P. Observação: 1K (KiB) = 1024B. |
|
--metadata |
strings |
Metadados definidos pelo usuário para o objeto, no formato key=value. |
|
--metadata-directive |
string |
Especifica como definir metadados para o objeto de destino. Valores válidos:
|
|
--metadata-exclude |
stringArray |
Regras de exclusão para metadados de objetos. |
|
--metadata-filter |
stringArray |
Regras de filtragem para metadados de objetos. |
|
--metadata-filter-from |
stringArray |
Lê regras de filtragem de metadados de objetos de um arquivo de regras. |
|
--metadata-include |
stringArray |
Regras de inclusão para metadados de objetos. |
|
--min-age |
Duration |
Envia apenas arquivos modificados antes do intervalo de tempo especificado. A unidade padrão é segundos. É possível usar sufixos como h (horas). Exemplo: 1h significa 1 hora. Nota
|
|
--max-age |
Duration |
Envia apenas arquivos modificados dentro do intervalo de tempo especificado. A unidade padrão é segundos. É possível usar sufixos como h (horas). Exemplo: 1h significa 1 hora. Nota
|
|
--min-mtime |
Time |
Envia apenas arquivos modificados após o horário especificado, por exemplo, 2006-01-02T15:04:05. |
|
--max-mtime |
Time |
Envia apenas arquivos modificados antes do horário especificado, por exemplo, 2006-01-02T15:04:05. |
|
--min-size |
SizeSuffix |
Tamanho mínimo de arquivo para transferir. A unidade padrão é bytes. Você também pode usar sufixos: B|K|M|G|T|P. Observação: 1K (KiB) = 1024B. |
|
--no-progress |
/ |
Não exibe a barra de progresso. |
|
--page-size |
int |
Número máximo de objetos listados por página durante o upload em lote. Valor padrão: 1000. Intervalo válido: 1–1000. |
|
--parallel |
int |
Número de tarefas concorrentes para operações internas em um único arquivo. Nota
Compatível com configurações via arquivo de configuração a partir do ossutil 2.3.0. |
|
--part-size |
SizeSuffix |
Tamanho da parte para upload multipart. Por padrão, o ossutil calcula um tamanho de parte apropriado com base no tamanho do arquivo. Intervalo válido: 100 KiB–5 GiB. Nota
Compatível com configurações via arquivo de configuração a partir do ossutil 2.3.0. |
|
-r, --recursive |
/ |
Executa a operação recursivamente. Quando esta opção é especificada, o comando opera em todos os objetos correspondentes no bucket. Caso contrário, opera apenas no objeto especificado pelo caminho. |
|
--request-payer |
string |
Método de pagamento da requisição. Defina este parâmetro se o bucket utilizar o modo pay-by-requester. Valor válido: requester. |
|
--size-only |
/ |
Envia apenas arquivos de origem cujo tamanho difere dos arquivos de destino. |
|
--storage-class |
string |
Classe de armazenamento do objeto. Valores válidos:
|
|
--tagging |
strings |
Tags para o objeto, no formato key=value. |
|
--tagging-directive |
string |
Especifica como definir tags para o objeto de destino. Valores válidos:
|
|
-u, --update |
/ |
Ignora arquivos que já existem no destino e possuem um tempo de modificação mais recente que os arquivos de origem. Nota
Se um arquivo já existir no destino, mas tiver um tempo de modificação mais antigo que o arquivo de origem, o arquivo será atualizado. |
|
--ignore-existing |
/ |
Ignora arquivos que já existem no destino. |
|
--enable-symlink-dir |
/ |
Segue e envia subdiretórios com links simbólicos (symlink) durante o upload. Por padrão, o comando cp ignora subdiretórios com symlink ao enviar um diretório. Quando esta opção é especificada, o comando envia recursivamente o conteúdo desses subdiretórios. Nota
Compatível a partir do ossutil 2.4.0. |
Para mais informações, consulte Command-line options.
As regras de nomenclatura de objetos são as seguintes:
No upload de arquivo único, se o prefixo estiver vazio, o nome do objeto será o nome do arquivo.
No upload de arquivo único, se o prefixo terminar com "/", o nome do objeto será prefixo + nome do arquivo.
No upload em lote, se o prefixo estiver vazio, o nome do objeto será o caminho relativo do arquivo de origem.
No upload em lote, se o prefixo terminar com "/", o nome do objeto será prefixo + caminho relativo do arquivo de origem.
No upload em lote, se o prefixo não terminar com "/", o nome do objeto será prefixo + "/" + caminho relativo do arquivo de origem.
O caminho relativo de um arquivo de origem começa após o diretório raiz. Por exemplo, ao executar cp /root/dir/ ..., o caminho relativo do arquivo /root/dir/subdir/test.txt é subdir/test.txt.
Parâmetros recomendados para upload de arquivos grandes
Ao enviar um arquivo maior que 100 MB, o ossutil muda automaticamente para upload multipart. Para aumentar a velocidade de upload e habilitar o upload retomável, utilize os seguintes parâmetros em conjunto:
|
Parâmetro |
Valor recomendado |
Descrição |
|
|
|
Número de tarefas concorrentes para upload de múltiplos arquivos. Valor padrão: 3. Esta opção só tem efeito quando você também especifica |
|
|
|
Número de tarefas concorrentes para operações internas (como uploads multipart) em um único arquivo. Aumentar este valor acelera o upload de um único arquivo grande. |
|
|
|
Diretório usado para upload retomável. |
O diretório especificado por --checkpoint-dir é criado no servidor local, e não no bucket do OSS. O ossutil cria automaticamente um subdiretório .ossutil_checkpoint neste caminho para armazenar arquivos de checkpoint .ucp que registram o progresso do upload (incluindo o ID do upload multipart e informações das partes).
Se o upload for interrompido, execute o mesmo comando novamente. O ossutil retoma o upload a partir do arquivo de checkpoint, reutiliza o mesmo ID de upload multipart e não reenvia as partes já carregadas.
Exemplo:
ossutil cp localfile.tar oss://examplebucket/desfolder/ -j 10 --parallel 10 --checkpoint-dir /path/to/checkpoint
Exemplos
Upload de um único arquivo
-
Upload de arquivo individual
Envie o arquivo local examplefile.txt para a pasta desfolder em examplebucket.
ossutil cp D:/localpath/examplefile.txt oss://examplebucket/desfolder/
Upload de múltiplos arquivos
-
Upload apenas de arquivos em uma pasta
Envie os arquivos da pasta local localfolder para a pasta desfolder em examplebucket.
ossutil cp -r D:/localpath/localfolder/ oss://examplebucket/desfolder/ -
Upload em lote de arquivos que correspondem a uma condição
Envie todos os arquivos com o formato TXT.
ossutil cp -r D:/localpath/localfolder/ oss://examplebucket/desfolder/ --include "*.txt" -
Uso de 10 tarefas concorrentes para upload em lote
ossutil cp -r D:/localpath/localfolder/ oss://examplebucket/desfolder/ -f -j 10
Limitar velocidade de upload
-
Envie o arquivo local upload.rar para a pasta desfolder em examplebucket a 20 MB/s. A unidade padrão é bytes por segundo (B/s).
ossutil cp D:/upload.rar oss://examplebucket/desfolder/ --bandwidth-limit 20971520 -
Envie o arquivo local file.rar para a pasta desfolder em examplebucket, limitando a velocidade de upload a 50 MB/s. Especifique a unidade como megabytes por segundo (MB/s).
ossutil cp D:/file.rar oss://examplebucket/desfolder/ --bandwidth-limit 50M