O comando sync sincroniza objetos de um diretório do OSS para um diretório local.
Observações de uso
Esta operação exige as permissões
oss:GetObjecteoss:ListObjects. Conceder permissões personalizadas a um usuário RAM.
-
Nome do binário
No ossutil 1.6.16 e versões posteriores, use ossutil diretamente como nome do binário na linha de comando. Não é necessário alterar o nome do binário conforme o sistema operacional. Caso utilize uma versão anterior à 1.6.16, atualize o nome do binário de acordo com seu sistema operacional. Para mais informações, consulte Referência de comandos do ossutil.
-
Quantidade de objetos
Sem a opção --delete, não há limite para a quantidade de objetos. Com a opção --delete, é possível sincronizar até 1 milhão de objetos por vez. Ultrapassar esse limite gera o erro over max sync numbers 1000000.
-
Diferenças em relação ao comando cp
Por padrão, o comando sync percorre recursivamente todos os objetos e subdiretórios. Já o comando cp exige a opção -r para operações recursivas.
O comando sync aceita a opção --backup-dir para salvar arquivos exclusivos do destino em uma pasta de backup. O comando cp não oferece suporte a --backup-dir.
O comando sync não oferece suporte a --version-id, portanto não sincroniza versões anteriores dos objetos. O comando cp oferece suporte a --version-id.
Os comandos sync e cp compartilham todas as demais opções. cp (Baixar arquivos).
Formato do comando
ossutil sync cloud_url file_url
[-f --force]
[-u --update]
[--maxdownspeed <value>]
[--delete]
[--backup-dir <value>]
[--enable-symlink-dir]
[--disable-all-symlink]
[--disable-ignore-error]
[--only-current-dir]
[--output-dir <value>]
[--bigfile-threshold <value>]
[--part-size <value>]
[--checkpoint-dir <value>]
[--range <value>]
[--encoding-type <value>]
[--snapshot-path <value>]
[--include <value>]
[--exclude <value>]
[--disable-crc64]
[--payer <value>]
[-j, --job <value>]
[--parallel <value>]
[--retry-times <value>]
Parâmetros e opções:
|
Parâmetro ou opção |
Descrição |
|
cloud_url |
Caminho do diretório de origem no OSS no formato |
|
file_url |
Caminho da pasta de destino local. Exemplo: |
|
-f --force |
Força a execução da operação sem solicitar confirmação. |
|
-u, --update |
Sincroniza apenas quando o arquivo de destino estiver ausente ou quando o objeto de origem for mais recente. |
|
--maxdownspeed |
Velocidade máxima de download em KB/s. Padrão: 0 (ilimitado). |
|
--delete |
Exclui arquivos de destino que não existem no diretório de origem do OSS. Aviso
Ative o versionamento antes de usar --delete para evitar perda acidental de dados. |
|
--backup-dir |
Salva arquivos exclusivos do destino na pasta de backup especificada, em vez de excluí-los. |
|
--enable-symlink-dir |
Sincroniza subdiretórios vinculados por links simbólicos. |
|
--disable-all-symlink |
Ignora todos os links simbólicos (arquivos e diretórios) durante a sincronização. |
|
--disable-ignore-error |
Interrompe a execução ao encontrar erros em operações em lote, em vez de ignorá-los. |
|
--only-current-dir |
Sincroniza apenas os objetos do diretório atual, sem incluir subdiretórios. |
|
--output-dir |
Diretório onde são salvos os relatórios de erro gerados durante a sincronização em lote. Padrão: ossutil_output no diretório atual. |
|
--bigfile-threshold |
Limiar de tamanho para download retomável, em bytes. Valor padrão: 100 MB Intervalo de valores: 0 a 9223372036854775807 |
|
--part-size |
Tamanho da parte em bytes. Por padrão, o ossutil calcula esse valor com base no tamanho do objeto. Intervalo de valores: 1 a 9223372036854775807 |
|
--checkpoint-dir |
Diretório para dados de checkpoint do download retomável. Se houver falha no download, o ossutil cria o diretório |
|
--range |
Baixa o intervalo de bytes especificado do objeto e o salva como um novo arquivo. A numeração começa em zero.
|
|
--encoding-type |
Método de codificação para nomes de objetos. Valor válido: url. Padrão: sem codificação. |
|
--snapshot-path |
Diretório para snapshots de sincronização. O ossutil lê os snapshots deste diretório para executar sincronizações incrementais nas execuções seguintes. |
|
--include |
Inclui apenas objetos correspondentes ao padrão especificado. Para mais informações, consulte Opções --include e --exclude. |
|
--exclude |
Exclui objetos correspondentes ao padrão especificado. Para mais informações, consulte Opções --include e --exclude. |
|
--disable-crc64 |
Desativa a validação de dados CRC-64. |
|
--payer |
Pagador da requisição. Defina como requester para cobrar as taxas de tráfego e requisições do solicitante. |
|
-j, --job |
Número de tarefas simultâneas para operações com múltiplos objetos. Padrão: 3. Intervalo: 1 a 10000. |
|
--parallel |
Número de tarefas simultâneas para operações com um único objeto. Intervalo: 1 a 10000. Por padrão, o ossutil define esse valor com base no tipo de operação e no tamanho do objeto. |
|
--retry-times |
Número de tentativas em caso de erro. Padrão: 10. Intervalo: 1 a 500. |
Verificar resultados da sincronização
Verifique se todos os objetos foram transferidos corretamente:
-
Verificar contagem de arquivos
Compare a quantidade de objetos entre os diretórios do OSS e local:
# Count files in the local directory. ls -1 /local/dir/ | wc -l # Count objects in the OSS directory. ossutil ls oss://bucket/dir/ -r | grep "^oss://" | wc -l -
Listar objetos sincronizados
Revise os objetos sincronizados:
# List local files with sizes. ls -lh /local/dir/ # Compare with the OSS directory. ossutil ls oss://bucket/dir/ -r
Exemplos
Os exemplos abaixo utilizam esta estrutura de arquivos. A pasta localdir no bucket do OSS contém a.txt, b.txt e o subdiretório C. A pasta local destdir contém d.txt:
examplebucket local root directory
└── localdir/ └── destdir/
├── a.txt └── d.txt
├── b.txt
└── C/
-
Sincronizar a pasta localdir do OSS para o computador local
ossutil sync oss://examplebucket/localdir/ destdir/Resultado: a.txt, b.txt e o subdiretório C são adicionados à pasta local destdir.
examplebucket local root directory └── localdir/ └── destdir/ ├── a.txt ├── a.txt ├── b.txt ├── b.txt └── C/ ├── d.txt └── C/ -
Sincronizar com --backup-dir: sincroniza localdir do examplebucket para a pasta local destdir e move os arquivos exclusivos do destino para a pasta backup.
ossutil sync oss://examplebucket/localdir/ destdir/ --delete --backup-dir backup/Resultado: a pasta localdir é sincronizada. Arquivos presentes em destdir mas ausentes na origem são movidos para a pasta backup. A pasta local destdir passa a conter apenas a.txt, b.txt e o subdiretório C. O arquivo original d.txt é movido para a pasta backup.
examplebucket local root directory └── localdir/ ├── destdir/ ├── a.txt │ ├── a.txt ├── b.txt │ ├── b.txt └── C/ │ └── C/ └── backup/ └──d.txt -
Saída de uma sincronização bem-sucedida:
Succeed: Total num: 2, size: 750,081. OK num: 2(upload 2 files). average speed 1641000(byte/s)
Opções comuns
Para acessar um bucket em outra região, use -e para especificar o endpoint. Para acessar um bucket pertencente a outra conta Alibaba Cloud, use -i para o AccessKey ID e -k para o AccessKey secret.
Exemplo: sincronizar a partir de um bucket na região China (Shanghai) pertencente a outra conta Alibaba Cloud:
ossutil sync oss://examplebucket/srcfolder/ examplefolder/ -e oss-cn-shanghai.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret