
Tenho> 100 milhões de arquivos de imagem (capas de livros) como uma lista simples de arquivos em um único "diretório":
/images/000000093e7d1825b346e9fc01387c7e449e1ed7
/images/000000574c67d7b8c5726f7cfd7bb1c5b3ae2ddf
/images/0000005ae12097d69208f6548bf600bd7d270a6f
...
Há muito tempo, eles eram armazenados no Amazon S3 e agora estão no Backblaze B2 (que é compatível com S3).
Até agora, isso funcionou bem:
- armazenar um novo arquivo é muito rápido;
- recuperar um arquivo existente é muito rápido.
Estou migrando mais uma vez para o iDrive E2 (também compatível com S3).
Estou experimentando movê-los usandoclone, mas após 30 minutos de espera para rclone copy
iniciar, percebi que o rclone não inicia a transferência de arquivos até receber toda a lista de arquivos.
O problema é:
- uma rápida referência
rclone ls
no/images/
diretório me diz que a transferência de toda a lista de arquivos levaria quase 10 horas - qualquer problema durante a transferência (que levará muitos dias) reiniciaria do zero, forçando o rclone a baixar toda a lista de arquivos novamente
- listando arquivoscusta dinheirocom B2
Tentei configurar o rclone para copiar apenas um lote de arquivos:
rclone copy "backblaze:/images/0000*"
, com ou sem*
, não encontra nenhum arquivorclone copy "backblaze:/images/" --include "/0000*"
parece baixar toda a lista de arquivos também e filtrar no cliente
Estranhamente, parece que o rclone não tem problemas para recuperar do servidor uma lista de arquivos que estão em um determinado "diretório", por exemplo /images/
, mas não pode fazer o mesmo com um prefixo, como /images/0000
.
Achei que o S3 e, por extensão, todos os armazenamentos compatíveis com S3, armazenavam caminhos de arquivos como uma estrutura plana, e esse /
era apenas um personagem como qualquer outro, e que você poderia facilmentelistar arquivos sob qualquer prefixo, terminando ou não com um/
.
Estou enganado?
Eu meu próximo armazenamento (E2),devo armazenar arquivos em subdiretórios, como images/0/0/0/0/
, images/0/0/0/1
, etc., assim como fazíamos nos velhos tempos de armazenamento de arquivos em um sistema de arquivos tradicional?
Responder1
Percebi que o rclone não inicia a transferência de arquivos até receber toda a lista de arquivos.
Isso está me dizendo que seu problema é menos os provedores de armazenamento e mais o próprio rclone. Uma solução que iniciasse o fluxo de lista e depois fragmentasse os arquivos à medida que eles chegassem seria mais apropriada do que aquela que precisa de toda a lista de arquivos antes de operar.
Eu pensei que o S3 e, por extensão, todos os armazenamentos compatíveis com S3 armazenavam caminhos de arquivos como uma estrutura plana,
Definitivamente é assim que o S3 faz, o que quebrou meu cérebro de administrador de servidor de arquivos quando o encontrei pela primeira vez. Dado que os problemas aqui parecem estar relacionados aos metadados e não ao layout do arquivo, provavelmente não importa.