【问题标题】:URL-forwarding to download a file: wget only downloads the index.htmlURL-forwarding 下载文件:wget 只下载 index.html
【发布时间】:2016-11-14 22:26:54
【问题描述】:

有时我必须从带有wget 的网站下载特定文件。 URL 很长,所以我创建了一个免费的 .tk 域来转发到该文件。如果我在浏览器中使用新的 .tk-URL,它会根据需要下载文件,但在 Ubuntu 上的 VPS 上,如果我使用 wget,它只会下载 index.html 文件。我在 Dot.TK 上有两个转发选项

  • 框架(隐形)
  • 重定向(HTTP 301 转发)

我应该使用哪个选项,有没有办法获取文件而不是 index.html?

【问题讨论】:

    标签: download wget url-redirection


    【解决方案1】:

    如果您使用 301,wget 应该可以下载文件。您也可以将curl -LO <URL> 与 301 一起使用。

    【讨论】:

    • 我不知道 Dot.TK 从 Frame (cloaking)Redirect 301 的更改可能需要多长时间,但目前它不适用于 wget - 它仍然下载索引。 .html 文件。 curl -LO <myURL> 也不起作用。我收到错误curl: Remote file name has no length!。我想补充一点,我的 TK 域是 http,文件 URL 是 HTTPS,但我认为,这没关系?
    • HTTPS 更改应该无关紧要。我真的必须知道 URL 才能进一步调试它,因为 wgetcurl 在 301 之后从 URL 检索内容应该没有问题。
    • 它是lisktest.tk 并重定向到https://downloads.lisk.io/lisk/test/installLisk.sh
    • 您正在下载的index.html 文件是installLisk.sh 文件(打开并检查)。 curl 中的 -O 选项试图找出使用 URL 调用本地文件的内容,而您的设置无法做到这一点,因此文件名没有长度。而是使用wget -O installLisk.sh lisktest.tkcurl -Lo installLisk.sh lisktest.tk。这两个选项都指定了本地文件名。
    • 如果您追求最短路径,您可以编写一个 bash 别名。在~/.bashrc 文件的底部,添加alias downloadLisk='wget -O installLisk.sh https://downloads.lisk.io/lisk/test/installLisk.sh'。然后只需在任何地方键入downloadLisk,它就会将文件下载到当前目录。但是,您可能需要考虑为什么您如此频繁地使用此命令并找到更持久的解决方案。这也离你的问题有点远。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-12
    • 2012-06-22
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多