aws s3 sync /WordProcessing/DOCUMENTS s3://mybigbucket --delete --include "*" --exclude ".DS_Store"
Se de alguma forma .DS_Store chegou ao AWS S3 mybigbucket (de um backup anterior), o uso do comando acima não exclui os arquivos .DS_Store do destino, mesmo que eu manualmente:
rm /WordProcessing/DOCUMENTS/.DS_Store
no servidor de arquivos.
Estou perdendo a lógica de como funciona o aws s3 sync? Parece-me que deveria excluir o .DS_Store do destino no bucket S3 se ele tiver sido removido da origem no servidor de arquivos.
Se eu retirar --exclude e executar o comando novamente, ele excluirá .DS_Store do destino quando for removido do servidor de arquivos. Isso não parece certo.
Estou adotando a abordagem errada? O que eu quero fazer é sincronizar todas as noites o servidor de arquivos e fazer com que ele não transfira para o bucket S3 os milhares de arquivos .DS_Store.
Responder1
Parece que você alterou seus parâmetros após a primeira sincronização.
Quando você usa, --exclude
ele exclui todos os arquivos ou objetos do comando que correspondem ao padrão especificado. Se corresponder, irá ignorar quaisquer ações para esse padrão.
Se o arquivo (.DS_Store) já estiver localizado no bucket s3 e a --exclude
opção corresponder a ele, ele será ignorado. Se foi alterado ou desapareceu da fonte de dados.
Você pode fazer:
- Use --exclude na primeira e em todas as sincronizações subsequentes (isso mantém o arquivo fora do s3 no início)
- Exclua o arquivo do host local primeiro, sincronize e depois coloque a exclusão (isso removerá o arquivo se estiver em s3 e impedirá que ele seja adicionado)
- Coloque --exclude e exclua manualmente o arquivo do s3 (isso evitará que o arquivo seja adicionado novamente ao s3)
Referência