Todos os produtos
Search
Central de documentação

Object Storage Service:cp (copiar objetos)

Última atualização: Jun 23, 2026

Copiar um objeto duplica um arquivo de um bucket de origem para um bucket de destino na mesma região, ou para outro diretório no mesmo bucket, sem alterar o conteúdo do arquivo. Use o comando cp no ossutil para executar essa operação.

Observações importantes

  • Para copiar objetos, você deve ter as permissões oss:GetObject, oss:ListObjects e oss:PutObject. Para mais informações, consulte Conceder políticas de permissão personalizadas a usuários RAM.

  • O sistema copia apenas objetos completos. Uploads multipart não mesclados não são compatíveis.

  • Por padrão, tags e atributos do objeto são copiados. Use a opção --copy-props para controlar como atributos e tags são tratados durante a cópia.

  • A cópia entre contas e entre regiões não é compatível. Para migrar arquivos entre contas ou regiões, use o ossimport ou o Data Online Migration.

  • Ao usar a opção -u, --update, o sistema envia pelo menos uma requisição HEAD por arquivo para comparar timestamps, mesmo que o arquivo de destino não exista. Em cenários com poucas alterações de dados, isso gera muitas requisições ineficientes, o que pode reduzir o desempenho e gerar cobranças adicionais. Avalie seu caso de uso antes de ativar essa opção para evitar consumo desnecessário de recursos.

Sintaxe do comando

ossutil cp oss://src_bucket[/src_prefix] oss://dest_bucket[/dest_prefix] [flags]

Parâmetro

Tipo

Descrição

src_bucket

string

Nome do bucket de origem.

src_prefix

string

Caminho do diretório ou prefixo no bucket de origem.

dest_bucket

string

Nome do bucket de destino.

dest_prefix

string

Caminho do diretório ou prefixo no bucket de destino.

--acl

string

Nível de controle de acesso do objeto. Valores válidos:

  • private: privado.

  • public-read: acesso público de leitura.

  • public-read-write: acesso público de leitura e gravação.

  • Padrão: herda do bucket.

--bandwidth-limit

SizeSuffix

Limita a largura de banda da rede para controlar a velocidade de transferência de dados. O valor mínimo é 1024 B/s. A unidade padrão é B/s.

Você pode especificar uma unidade ao definir esse parâmetro. As unidades compatíveis incluem B (bytes), K (kilobytes), M (megabytes) e G (gigabytes). Por exemplo, 50 M define o limite como 50 MB/s.

--bigfile-threshold

SizeSuffix

Limiar (em bytes) para ativar upload, download ou cópia multipart de arquivos grandes. Valor padrão: 104857600 (100 MiB).

--cache-control

string

Especifica o comportamento de cache quando o objeto é baixado por um navegador web.

--checkers

int

Número de threads de verificação simultâneas. Padrão: 16.

--checkpoint-dir

string

Diretório para armazenar dados de checkpoint e permitir transferências resumíveis. Padrão: .ossutil_checkpoint/.

--checksum

/

Copia apenas arquivos de origem cujo tamanho ou checksum (se disponível) difere do destino. Aplica-se apenas a operações de cópia entre objetos.

--content-disposition

string

Especifica o formato de exibição do objeto.

--content-encoding

string

Declara o método de codificação do objeto.

--content-type

string

Tipo MIME do objeto.

--copy-props

string

Controla como propriedades e tags do objeto são copiadas em operações entre objetos. Valores compatíveis:

  • default (padrão): copia propriedades e tags do objeto. As propriedades incluem content-type, content-language, content-encoding, content-disposition, cache-control, expires e metadata (metadados personalizados do usuário).

  • metadata: copia apenas as propriedades do objeto.

  • none: copia apenas os dados do objeto, ignorando propriedades e tags.

-d, --dirs

string

Processa arquivos e subdiretórios imediatos no diretório atual, sem percorrer subdiretórios mais profundos de forma recursiva.

--encoding-type

string

Tipo 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.

--expires

string

Define um tempo de expiração absoluto para conteúdo em cache.

--files-from

stringArray

Lê uma lista de nomes de arquivos de origem de um arquivo, ignorando linhas vazias ou comentadas. Aplica-se apenas em cenários de filtragem.

--files-from-raw

stringArray

Lê uma lista de nomes de arquivos de origem de um arquivo. Aplica-se apenas em 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.

-f, --force

/

Força a operação sem solicitar confirmação.

--ignore-existing

/

Ignora arquivos que já existem no destino.

--include

stringArray

Regras de inclusão para caminhos ou nomes de arquivos.

--include-from

stringArray

Lê regras de inclusão de um arquivo.

-j, --job

int

Número de jobs simultâneos. Padrão: 3.

null

Essa opção funciona apenas com uma das seguintes flags: -f, --update, --size-only ou --ignore-existing.

--list-objects

/

Usa a API ListObjects para enumerar objetos.

--max-size

SizeSuffix

Tamanho máximo de arquivo para transferência. A unidade padrão é bytes. Você pode anexar um sufixo: B|K|M|G|T|P (por exemplo, 1K = 1024 B).

--metadata

strings

Metadados definidos pelo usuário para o objeto, especificados como pares chave=valor.

--metadata-directive

string

Especifica como definir metadados para o objeto de destino. Valores válidos:

  • COPY

  • REPLACE

--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 um arquivo.

--metadata-include

stringArray

Regras de inclusão para metadados de objetos.

--min-age

Duration

Copia apenas arquivos modificados antes do intervalo de tempo especificado. A unidade padrão é segundos. Você pode usar sufixos como h (horas). Exemplo: 1h significa 1 hora.

null

--min-age 1h copia apenas arquivos modificados há uma hora ou mais.

--max-age

Duration

Copia apenas arquivos modificados dentro do intervalo de tempo especificado. A unidade padrão é segundos. Você pode usar sufixos como h (horas). Exemplo: 1h significa 1 hora.

null

--max-age 1h copia apenas arquivos modificados na última hora.

--min-mtime

Time

Copia apenas arquivos modificados após o horário especificado. Formato: UTC (por exemplo, 2006-01-02T15:04:05).

null

--min-mtime "2006-01-02T15:04:05" copia apenas arquivos modificados após 2006-01-02T15:04:05.

--max-mtime

Time

Copia apenas arquivos modificados antes do horário especificado. Formato: UTC (por exemplo, 2006-01-02T15:04:05).

--min-size

SizeSuffix

Tamanho mínimo de arquivo para transferência. A unidade padrão é bytes. Você pode anexar um sufixo: B|K|M|G|T|P (por exemplo, 1K = 1024 B).

--no-progress

/

Desativa a barra de progresso.

--no-error-report

/

Impede a geração de arquivos de relatório de erros em operações em lote.

--output-dir

string

Diretório onde os arquivos de relatório de erros são salvos em operações em lote. Padrão: ossutil_output.

--page-size

int

Número máximo de objetos listados por página durante a cópia em lote. Intervalo válido: 1–1000. Padrão: 1000.

--parallel

int

Número de tarefas simultâneas para operações internas em um único arquivo.

--part-size

SizeSuffix

Tamanho de cada parte em operações multipart. Por padrão, o ossutil calcula um tamanho de parte ideal com base no tamanho do arquivo. Intervalo válido: 100 KiB a 5 GiB.

-r, --recursive

/

Executa a operação de forma recursiva. Com essa opção ativada, o comando processa todos os objetos correspondentes no bucket. Caso contrário, opera apenas no objeto especificado explicitamente.

--request-payer

string

Método de pagamento da requisição. Defina como requester se o bucket usar o modo de pagamento pelo solicitante.

--size-only

/

Copia apenas arquivos de origem cujo tamanho difere do destino.

--start-after

string

Retorna objetos posteriores ao valor especificado em ordem alfabética, excluindo o próprio valor.

--storage-class

string

Classe de armazenamento do objeto. Valores válidos:

  • Standard: armazenamento padrão.

  • IA: armazenamento de acesso infrequente.

  • Archive: armazenamento Archive.

  • ColdArchive: armazenamento Cold Archive.

  • DeepColdArchive: armazenamento Deep Cold Archive.

--tagging

string

Tags do objeto, especificadas como pares chave=valor.

--tagging-directive

string

Especifica como definir tags para o objeto de destino. Valores válidos:

  • COPY

  • REPLACE

-u, --update

/

Ignora arquivos no destino que já existem e possuem um horário de modificação mais recente que a origem.

null

Se o arquivo de destino existir com um horário de modificação mais antigo que a origem, o arquivo será atualizado.

--version-id

string

Especifica o ID da versão do objeto (VersionId).

null

A partir da versão 2.3.0 do ossutil, você pode configurar as opções --job, --parallel, --bigfile-threshold, --part-size e --write-buffer-size em um arquivo de configuração. Adicione-as como entradas key=value na seção de perfil correspondente (por exemplo, job=10) ou use o comando ossutil config set. As opções da linha de comando substituem as configurações do arquivo de configuração.

null

Para mais informações, consulte Opções de linha de comando.

Regras de nomenclatura do objeto de destino:

  • Na cópia de arquivo único, se dest_prefix estiver vazio, o nome do objeto de destino corresponde ao caminho relativo do arquivo de origem.

  • Na cópia de arquivo único, se dest_prefix terminar com "/", o nome do objeto de destino é dest_prefix + caminho relativo da origem.

  • Na cópia de arquivo único, se dest_prefix não terminar com "/", o nome do objeto de destino corresponde a dest_prefix.

  • Na cópia em lote, se dest_prefix terminar com "/", o nome do objeto de destino é dest_prefix + caminho relativo da origem.

  • Na cópia em lote, se dest_prefix não terminar com "/", o nome do objeto de destino é dest_prefix + "/" + caminho relativo da origem.

Exemplos

  • Copiar um único arquivo

    ossutil cp oss://examplebucket1/examplefile.txt oss://examplebucket1/desfolder/
  • Copiar arquivos incrementais

    Na cópia em lote, use a opção --update para ignorar arquivos no destino que já existem e possuem um horário de modificação mais recente que a origem:

    ossutil cp oss://examplebucket1/srcfolder1/ oss://examplebucket1/desfolder/ -r --update
  • Cópia entre buckets após replicação na mesma região

    • Use a opção --checksum para cópia incremental baseada em checksum: ideal quando é necessária consistência rigorosa de conteúdo (por exemplo, ao repetir uma cópia em lote que falhou, ignorando arquivos já copiados). O sistema segue esta lógica:

      1. Compara os tamanhos dos arquivos primeiro.

      2. Se os tamanhos forem iguais, calcula e compara os checksums CRC64.

      3. Copia apenas se os checksums forem diferentes.

      ossutil cp oss://examplebucket1/srcfolder1/ oss://examplebucket1/desfolder/ -r --checksum
    • Use a opção --ignore-existing para ignorar arquivos existentes: útil quando você deseja ignorar arquivos que já existem no destino sem sobrescrevê-los:

      ossutil cp oss://examplebucket1/srcfolder1/ oss://examplebucket1/desfolder/ -r --ignore-existing
  • Renomear um arquivo

    ossutil cp oss://examplebucket1/examplefile.txt oss://examplebucket1/example.txt 

    Ao renomear um arquivo com o comando cp , o arquivo original permanece. Exclua-o manualmente após a renomeação, se necessário.

  • Modificar tags de objetos

    ossutil cp oss://examplebucket1/examplefile.txt oss://examplebucket1/ --tagging "abc=1&bcd=2&……"