0

我需要一些关于如何通过远程作业服务器上运行的作业将动态生成的文件获取到运行用户面板以管理作业的前端服务器的建议。

我不希望我的作业服务器的 IP 被暴露,因此不希望用户直接从作业服务器下载。

我还需要一些 Jquery 库来显示下载速度,某种进度条。

4

1 回答 1

1

我认为知道几个问题的答案会有所帮助。

在我的头顶上:

  • 文件可以有多大?
  • 下载文件可能需要多长时间?
  • 文件是什么格式的?
  • 您从作业服务器获取的文件是静态的吗?(或者,它们是否每次都被重新生成?)

编辑:

jQuery UI 有一个进度条(文档)

在您的用户面板中,您将获得如下链接:

<a href="remoteTxtFile.php?file_id=100">File 100</a>

此链接应在您的前端服务器上向 remoteTxtFile.php 发起jQuery.getJSON()请求,其中:

  • 检查请求的文件是否已经下载。
  • 如果有,则返回如下 JSON 对象:{'location': '/cache/file_100.txt'}
    • 然后,Ajax 成功回调可以显示文件的链接。
  • 如果没有,请使用可以将进度输出到文本文件的东西(进一步的想法)开始下载文件。将文件保存到“缓存”文件夹。返回这样的 JSON 对象:{'progress':0}
  • 定期(大约每秒)触发另一个 getJSON() 到 PHP 脚本,该脚本读取下载进度 txt 文件并返回如下 JSON 对象:{'progress': 52} (百分比)
  • 下载完成后,从 PHP 返回 JSON,如下所示:{'location': '/cache/file_100.txt'}
    • 当 Ajax 成功回调看到“位置”时,文件就完成了,所以显示一个指向它的链接。

我不确定您应该使用什么来实际下载文件。使用 PHP 和stream_notification_callback进行下载(和输出进度)的问题是整个文件将被下载到内存中,这对于 1 GB 文件来说是没有好处的。

也许使用 wget 进行实际下载会更好。

于 2010-12-11T05:02:28.903 回答