Provavelmente pode ser alcançado via AIP. Relacionado ao nº 34.
+1
Uma possibilidade que você pode considerar é que o usuário "solicite download de todos" para iniciar a compactação e, em seguida, envie uma notificação (por e-mail) com um link de download do arquivo zip quando a compactação for concluída. Você pode fazer o link expirar em 24 horas e liberar o armazenamento.
Outra solução pode ser transmitir todos os arquivos dentro de um zip usando uma biblioteca como https://github.com/SpiderOak/ZipStream. Nenhum armazenamento em disco temporário extra será necessário e (espero, se a biblioteca funcionar como anunciado) nenhuma memória extra.
É claro que talvez uma combinação dos métodos mencionados seja melhor (se [tamanho total dos arquivos] > 2 GB, envie um e-mail com o link para o zip gerado assíncrono, caso contrário, use o ZipStream).
Editar: Outra maneira é acionar vários downloads via JavaScript. Esta biblioteca parece fazer isso: https://github.com/sindresorhus/multi-download
Acabei de fazer o upload de um conjunto de dados de algumas centenas de arquivos e estou chocado que não há um botão "baixar tudo" do usuário final fornecendo um ZIP ou tar-ball ou similar (que pode ser gerado na hora).
Em retrospectiva, eu mesmo deveria ter carregado um arquivo, mas a interface de upload não forneceu orientação explícita e foi claramente projetada para lidar com vários arquivos.
O trabalho atual é fazer upload de um único arquivo (por exemplo example.zip
ou example.tar.gz
conforme apropriado para a comunidade alvo), como uma nova versão, se necessário?
[Atualização: Dado que o conjunto de dados ainda não foi compartilhado, usei https://zenodo.org/support para perguntar sobre a substituição dos arquivos]
Sim, a solução atual é fazer upload de um ZIP (melhor e visualizado - tar.gz não é visualizado).
O problema aqui é que temos conjuntos de dados do tamanho de TB e, portanto, fazer um botão "baixar tudo" não é trivial se for necessário dimensionar.
Um compactação automática para conjuntos de dados menores (no upload ou até mais tarde) resolveria a maioria dos problemas, certo? Também economizaria espaço de armazenamento?
Eu também apreciaria muito isso -- temos vários arquivos em nossos arquivos para que os usuários tenham a opção de pegar apenas os dados de que precisam, mas muitas pessoas querem tudo isso, e é tedioso ter que clicar em cada arquivo. Ou é a expectativa geral de que as pessoas apenas carreguem um grande arquivo zip como um arquivo?
Sim, a solução atual é fazer upload de um ZIP (melhor e visualizado - tar.gz não é visualizado).
O problema aqui é que temos conjuntos de dados do tamanho de TB e, portanto, fazer um botão "baixar tudo" não é trivial se for necessário dimensionar.
sugiro incluir algumas orientações na interface do usuário de upload.
onde atualmente diz:
Drag and drop files here
— or —
Choose files
(minimum 1 file required, max 50 GB per dataset - contact us for larger datasets)
Pode haver uma nota como a seguinte:
_Observação: caso o conjunto de dados contenha mais do que alguns arquivos, considere embalá-los em um arquivo zip, para facilitar o download pelo usuário._
btw, existe o zenodo_get, um downloader para registros do Zenodo:
Pode haver uma nota como a seguinte:
_Observação: caso o conjunto de dados contenha mais do que alguns arquivos, considere embalá-los em um arquivo zip, para facilitar o download pelo usuário._
Parece-me uma boa ideia, desde que não haja solução para "baixar tudo".
btw, existe o zenodo_get, um downloader para registros do Zenodo:
Que tal integrar essa ferramenta na interface do Zenodo?
Para sua informação, também existe um pacote R para fazer isso (e muitas outras coisas): https://github.com/eblondel/zen4R
Comentários muito úteis
Acabei de fazer o upload de um conjunto de dados de algumas centenas de arquivos e estou chocado que não há um botão "baixar tudo" do usuário final fornecendo um ZIP ou tar-ball ou similar (que pode ser gerado na hora).
Em retrospectiva, eu mesmo deveria ter carregado um arquivo, mas a interface de upload não forneceu orientação explícita e foi claramente projetada para lidar com vários arquivos.
O trabalho atual é fazer upload de um único arquivo (por exemplo
example.zip
ouexample.tar.gz
conforme apropriado para a comunidade alvo), como uma nova versão, se necessário?[Atualização: Dado que o conjunto de dados ainda não foi compartilhado, usei https://zenodo.org/support para perguntar sobre a substituição dos arquivos]