如何从Linux下载URL中的文件


0

通常会下载一个文件扩展名为URL的文件。

要下载Ubuntu ISO,一个很简单

wget http://releases.ubuntu.com/14.04.3/ubuntu-14.04.3-desktop-amd64.iso

但是,我遇到了一个我怀疑使用ASP.Net / IIS的网站。

这种形式的ISO链接 (我在......政策的情况下删除了链接内容)

http://some.ip.in.here/website.com/IMAGENAME.ISO?md5=hUhpyFjk7zEskw06ZhrWAQ&expires=1454811899

我不知道如何下载它,因为它有MD5和到期时间作为参数,所以wget只下载一个网页,而不是这个ISO。

有什么建议?


在这种情况下,我建议 cliget 插件为fx
Arkadiusz Drabczyk

1
你把你的asp.net网址放在引号(“)中吗?有”&“字符会产生在后台运行它的副作用,你的服务器将无法获得完整的网址。
user871199

@ user871199您可以将此作为答案发布,这对我有所帮助
Cybex

不幸的是,如果涉及到cookie,则会变得更加困难。如果由Web服务器正确实现,即使在同一台计算机上打开浏览器,也是不可能的。
Daniel B

Answers:


3

使用

wget "http://some.ip.in.here/website.com/IMAGENAME.ISO?md5=hUhpyFjk7zEskw06ZhrWAQ&expires=1454811899"

说明: 有“&”网址中的字符。在linux和类似的系统上,这使它成为一个后台进程。解决它将url括在双quoutes(“)中,以便将其视为一个参数。


3

如果您只是想获得一个合理的文件名复杂的URL,您可以使用 输出文件 选项。

-O file
--output-document=file

这些形式中的任何一种都可行。

如前所述,请确保URL中的任何特殊字符都不会被命令解析器解释。


0

有两种方法可以使用 卷曲

在第一种方法中你会这样做 -O 标记根据URL中的远程名称写出文件;在这种情况下,它很可能将文件写入系统 IMAGENAME.ISO?md5=hUhpyFjk7zEskw06ZhrWAQ&expires=1454811899;请注意URL值是如何包含在双引号中的 &? 可能被误解为Bash命令:

curl -O -L "http://some.ip.in.here/website.com/IMAGENAME.ISO?md5=hUhpyFjk7zEskw06ZhrWAQ&expires=1454811899";

虽然该方法在技术上“有效”,但文件名充其量令人困惑。所以在这个其他方法中你将使用输出重定向 > 在URL之后输入文件名,以将文件内容输出到名为的文件 IMAGENAME.ISO

curl -L "http://some.ip.in.here/website.com/IMAGENAME.ISO?md5=hUhpyFjk7zEskw06ZhrWAQ&expires=1454811899" > "IMAGENAME.ISO";

所以,如果你问我,第二种方法最适合大多数平均使用。还要注意 -L 在两个命令中使用的标志;该命令告诉Curl遵循文件下载URL可能具有的任何重定向链接,因为很多时候下载服务上的文件在登陆目标有效负载文件之前重定向几次。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.