O comando cp transfere arquivos ou diretórios entre o sistema local e o Object Storage Service (OSS), ou dentro do OSS. Ele oferece suporte a operações de upload, download e cópia, com transferências simultâneas integradas e Resumable Transfer para arquivos grandes.
Antes de usar o comando cp, instale e configure o ossutil.
Nota de uso
Antes de fazer upload, download ou cópia, certifique-se de que o RAM user ou RAM role associado às suas credenciais de acesso tenha as permissões necessárias para o bucket e os objetos de destino. Para mais detalhes, consulte Conceder permissões de política personalizada a RAM users.
Como funciona
O comando ossutil cp determina automaticamente se a operação é de upload, download ou cópia com base nos tipos de caminho de origem e destino.
O ossutil seleciona um método de transferência com base no tamanho do arquivo:
O ossutil transfere arquivos menores que o limiar de Resumable Transfer em uma única operação. O limiar padrão é 100 MB. Use a opção
--bigfile-thresholdpara alterá-lo.Arquivos iguais ou maiores que o limiar utilizam Resumable Transfer. Se a transferência for interrompida por um erro de rede ou encerramento do processo, o ossutil salva o progresso e retoma de onde parou ao executar o mesmo comando novamente. Se não for possível retomar a transferência, as partes incompletas permanecem no bucket e continuam gerando custos de armazenamento. Exclua as partes manualmente ou configure regras de ciclo de vida para excluí-las automaticamente.
Quando o Resumable Transfer falha, o ossutil cria um diretório .ossutil_checkpoint para armazenar informações de checkpoint. Esse diretório é excluído automaticamente quando a transferência é concluída. Use a opção --checkpoint-dir para especificar um diretório diferente para os registros de checkpoint.
Upload de objetos
Use o comando cp (upload de objetos) para fazer upload de arquivos locais, imagens, vídeos e outros recursos para um bucket.
Upload de um único objeto: Faça upload de um arquivo de um caminho local para um bucket.
Upload em massa: Faça upload de um diretório inteiro, incluindo todos os subdiretórios e arquivos.
Filtrar por padrão: Use as opções
--includee--excludepara controlar quais arquivos são carregados. Por exemplo, carregue apenas arquivos.logou ignore todos os arquivos temporários (.tmp).
Download de objetos
Use o comando cp (download de objetos) para baixar objetos do OSS para o sistema local. As operações disponíveis incluem download em massa, limitação de velocidade de download e download de uma versão específica de um bucket com controle de versão habilitado.
Download de um único objeto: Baixe um objeto especificado para um caminho local.
Download em massa: Baixe uma estrutura de diretórios inteira de um bucket para o sistema local.
Download de uma versão específica: Se o controle de versão estiver habilitado para o bucket, baixe uma versão histórica específica de um objeto.
Cópia de objetos
Use o comando cp (cópia de objetos) para copiar um objeto para outro bucket na mesma região ou para um caminho diferente dentro do mesmo bucket. A operação de cópia não modifica o conteúdo do objeto.
Cópia entre buckets: Copie um objeto de um bucket para outro dentro da mesma região.
Cópia dentro do bucket (mover ou renomear): Copie um objeto de um caminho para outro dentro do mesmo bucket. Para simular uma movimentação ou renomeação, copie o objeto para o novo caminho e exclua o original.
O comando ossutil cp não copia objetos entre regiões. Para replicar objetos entre buckets em regiões diferentes, use o Cross-Region Replication (CRR).
Aplicar em produção
Ajustar o desempenho de simultaneidade
Ajuste as opções -j, --jobs e --parallel se a simultaneidade padrão não atender aos requisitos de throughput. Por padrão, o ossutil calcula o valor de --parallel com base no tamanho do arquivo. Para transferências em massa de arquivos grandes, a simultaneidade efetiva equivale ao número de jobs multiplicado pelo valor de parallel.
Se o servidor ou a instância do Elastic Compute Service (ECS) que executa o ossutil tiver recursos limitados, como largura de banda de rede, memória ou CPU, reduza os valores de simultaneidade. Se os recursos estiverem subutilizados, aumente-os gradualmente.
Definir a simultaneidade com um valor muito alto pode prejudicar o desempenho devido à sobrecarga de alternância de threads e contenção de recursos, além de poder provocar erros de EOF. Comece com um valor baixo durante os testes de desempenho e aumente gradualmente até encontrar a configuração ideal para -j, --jobs e --parallel.
Limitar as taxas de transferência
Use as opções --maxupspeed ou --maxdownspeed para limitar a largura de banda de upload ou download e evitar que o ossutil sature a conexão de rede.