Zenodo: Suporte a URL de download simples para arquivos

Criado em 23 out. 2018  ·  4Comentários  ·  Fonte: zenodo/zenodo

Atualmente, os URLs para arquivos baixados parecem ser indiretos e não incluem a extensão do nome do arquivo (por exemplo, wget) - idealmente, o nome do arquivo do arquivo deve ser preservado ao fazer o download usando uma ferramenta na linha de comando. É possível mudar isso?

Comentários muito úteis

Obrigado @lnielsen. Curl'ing api/records/record_id funcionou para buscar urls wget'able. Seria útil exibir esses URLs wget'able diretamente no site, se possível.

Todos 4 comentários

Obrigado por relatar. AFAIK isso já é suportado. Exemplo:

$ wget https://zenodo.org/api/files/4f53dd1f-df5f-4a9c-8b46-6eacfc4b8840/results.zip
--2018-10-24 08:33:10--  https://zenodo.org/api/files/4f53dd1f-df5f-4a9c-8b46-6eacfc4b8840/results.zip
Resolving zenodo.org... 137.138.76.77
Connecting to zenodo.org|137.138.76.77|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 309980977 (296M) [application/octet-stream]
Saving to: 'results.zip'

Você tem um exemplo onde não é o caso?

Olá @lnielsen ,

https://zenodo.org/record/51405
Este registro, por exemplo, contém arquivos com o formato
https://zenodo.org/record/<record number>/files/<filename>?download=1 ,
que é diferente do
https://zenodo.org/api/files/<UID>/<filename>
formato que você fornece acima. Com referência à solicitação de @bbarker , não é possível usar wget no primeiro.

Isso pode ser ignorância da minha parte. Existe um método que estou perdendo para obter o link permanente no estilo API?

@benjaminhwilliams Em ambos os casos, é o mesmo pedaço de código servindo o arquivo, a única diferença é que você receberá uma bela mensagem de erro humano em https://zenodo.org/record/<record number>/files/<filename>?download=1 para, por exemplo, 404 páginas.

Em termos de wget e ?download=1 , na minha opinião wget está se comportando mal. No entanto, você pode simplesmente remover o ?download=1 para satisfazer wget .

wget está se comportando mal porque de fato estamos enviando o nome de arquivo correto nos cabeçalhos HTTP. Ver abaixo:

$ curl -I "https://zenodo.org/record/51405/files/l-cyst_01.tar.gz?download=1"
HTTP/1.1 200 OK
...
Content-Disposition: attachment; filename=l-cyst_01.tar.gz
...

Dito isto, se você precisar de downloads automatizados, é melhor usar nossa API REST, onde você obtém links diretos de arquivos:

$ curl https://zenodo.org/api/records/51405
{
  ...
  "files": [
    {
      "bucket": "cbc7d513-2359-47fe-a9c6-f826de7776c5",
      "checksum": "md5:780a7b23320307ae8b6cf2d6e99ade1f",
      "key": "l-cyst_fast_04.tar.gz",
      "links": {
        "self": "https://zenodo.org/api/files/cbc7d513-2359-47fe-a9c6-f826de7776c5/l-cyst_fast_04.tar.gz"
      },
      "size": 140654635,
      "type": "gz"
    },
    {
      "bucket": "cbc7d513-2359-47fe-a9c6-f826de7776c5",
      "checksum": "md5:c04800ec8ffaaad867ee54a3a1688ac5",
      "key": "l-cyst_very_fast_01.tar.gz",
      "links": {
        "self": "https://zenodo.org/api/files/cbc7d513-2359-47fe-a9c6-f826de7776c5/l-cyst_very_fast_01.tar.gz"
      },
      "size": 63254814,
      "type": "gz"
    },
  ...
}

Obrigado @lnielsen. Curl'ing api/records/record_id funcionou para buscar urls wget'able. Seria útil exibir esses URLs wget'able diretamente no site, se possível.

Esta página foi útil?
0 / 5 - 0 avaliações