使用通配符通过身份验证从https url下载文件

时间:2017-03-01 22:39:04

标签: curl https download wildcard nexus

我需要使用命令行从nexus存储库下载工件。工件文件名称是unknowm,但扩展名称始终为*.zip。我使用带有通配符的curl命令。当我执行命令时,它显示HTTP/1.1 404 Not Found

curl --insecure -O -u username:password -v https://nexus.internal.org.com/content/repositories/snapshots/com/org/artifact/1.4.0/*.zip

> Accept: */*
>
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                             Dload  Upload   Total   Spent    Left  Speed
 0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--   0< HTTP/1.1 404 Not Found
< Accept-Ranges: bytes
< Content-Type: text/html
< Date: Wed, 01 Mar 2017 22:28:35 GMT
< Server: Nexus/2.14.2-01
< X-Content-Type-Options: nosniff
< X-Frame-Options: SAMEORIGIN
< transfer-encoding: chunked
< Connection: keep-alive

该文件实际存在于URL位置。命令我运行得好吗?

1 个答案:

答案 0 :(得分:1)

根据this answer的说明,我找到了一个很好的方法 它基本上会请求整个前缀的内容,在递归中设置一些边界,并通过类似shell的模式过滤接受的文件。

如果我没有弄错的话,做你想做的事的命令就是:

wget --recursive --level=1 --no-parent --no-directories \
  --accept '*.zip' \
  --directory-prefix=. \
   https://nexus.internal.org.com/content/repositories/snapshots/com/org/artifact/1.4.0/