如何将文件直接下载到Web服务器?


3

我想直接将文件下载到托管服务器,无论是我自己设置的服务器还是Dropbox等托管服务。

例如,当我下载一个播客时,与其将其下载到我的计算机上然后将其上传到服务器上,不如直接将其下载到云中。我的兴趣是减少我在笔记本电脑上按计量数据计划使用的流量,所以我不希望我的计算机充当物理中间设备来缓存文件。

理想情况下,我可以采用某种方式来获得下载链接,并告诉它直接进入我的服务器。我该怎么做?

我意识到这个问题可能涉及一个“ webapp”,并且可能涉及“服务器管理”,并且由于我的目标是使我的计算机脱离循环,所以我可以看到人们说这是题外话,应该在另一个站点上。我的问题是:我不知道这将是Webapp解决方案还是服务器解决方案,但我知道无论我将要使用计算机来完成它还是要替换当前已完成的功能在我的计算机上,所以我想在这里问。如果我错了,这绝对应该在webapps上让我知道或迁移它。

Answers:


6

你可以:

  • VNC进入服务器,加载浏览器,然后下载文件。
  • SSH进入服务器,并使用CLI(curl?wget?)进行基本相同的操作。可以使用SSH执行远程命令。有关此示例,请参见ulidtko的答案
  • 在服务器上创建可以排队文件下载URL的应用程序(Web服务?)。它可以轮询队列,下载每个文件,直到队列为空。

3

使用CLI,这非常容易。

$ URL =“ http://upload.wikimedia.org/wikipedia/commons/1/15/Red_Apple.jpg”
$ ssh user @ remote-host'wget $ URL'

--2011-02-05 11:15:10-- http://upload.wikimedia.org/wikipedia/commons/1/15/Red_Apple.jpg
正在解析upload.wikimedia.org ... 91.198.174.234
正在连接至upload.wikimedia.org | 91.198.174.234 |:80 ...已连接。
HTTP请求已发送,正在等待响应... 200 OK
长度:576216(563K)[image / jpeg]
保存到:Red_Apple.jpg

     0K ........................................ 。8%327K 2秒
    50K ................................. 。17%668K 1秒
   100K .............................................................................................. 。26%123万1秒
   150K .............................. 。35%123万1秒
   200K ............................................ 。44%697K 0秒
   250K ............................................................................................................. 。53%115万0秒
   300K ............................................ 。62%707K 0秒
   350K ................................................................ 。71%113万0秒
   400K ........................................ 。79%713K 0秒
   450K ................... 。88%1.13M 0秒
   500K ................................................. 。97%702K 0秒
   550K .......... .. 100%3.13M = 0.7s

2011-02-05 11:15:11(777 KB / s)-保存了'Red_Apple.jpg'[576216/576216]

在这里,我们使用两个重要的工具:sshwget。大多数输出​​来自wget—但它是在远程计算机上启动的wget实例的输出;该文件保存在user的主目录中remote-host


+1,这可能是最快的方法,并且可以轻松编写脚本。
hyperslug 2011年

1

现在,这取决于您使用的是共享托管还是更多自由的东西。如果是前者,那将是一个丑陋的陷阱。

如果您拥有自己的VPS或具有有效系统的其他主机,则可以设置所需的设备-例如torrent客户端,如果想要完全访问权限则可以使用torrentflux之类的东西,和/或使用上述ssh / cli客户端方法(尽管,如果足够无聊,将Dropbox上载到服务器的链接结合起来,再加上聪明的cron脚本,将是一种告诉系统要打开/下载哪些文件的文件的绝妙方式。

您甚至可以定期将下载的文件压缩成块以进行上传,以节省更多带宽。


1

在目标服务器中创建一个名为“下载”的文件夹。将此代码保存到.php文件中并在目标服务器中运行:

<html>
<form method="post">
<input name="url" size="50" />
<input name="submit" type="submit" />
</form>
<?php

// maximum execution time in seconds
set_time_limit (24 * 60 * 60);

if (!isset($_POST['submit'])) die();


// folder to save downloaded files to. must end with slash
$destination_folder = 'downloads/';

$url = $_POST['url'];
$newfname = $destination_folder . basename($url);

$file = fopen ($url, "rb");
if ($file) {
  $newf = fopen ($newfname, "wb");

  if ($newf)
  while(!feof($file)) {
    fwrite($newf, fread($file, 1024 * 8 ), 1024 * 8 );
  }
}

if ($file) {
  fclose($file);
}

if ($newf) {
  fclose($newf);
}

?>
</html> 
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.