2010-12-11 49 views
0

我需要如何动态生成的文件通过我的工作远程服务器上运行我的前端服务器上运行的用户面板,管理岗位的工作取得一些建议。取出由作业服务器文件到我的前端服务器

我不希望我的作业服务器的IP被公开,因此允许用户从作业服务器直接下载是不受欢迎的。

我还需要一些jQuery库,以显示下载速度,某种形式的进度条。

回答

1

我认为这将有助于了解几个问题的答案。

关闭我的头顶:

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

编辑:

jQuery用户界面具有progress bar(docs)

从你的用户面板,您将有一个这样的链接:

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

这个环节应该启动一个jQuery.getJSON()请求remoteTxtFile.php您的前端服务器,在其上:

  • 检查以看看请求的文件是否已经被下载。
  • 如果有,返回一个JSON对象是这样的:{“位置”:“/cache/file_100.txt”}
    • 阿贾克斯成功回调则可以显示一个链接到该文件。
  • 如果没有,开始下载使用东西(思想进一步下跌)的文件,该文件可以输出进步到一个文本文件中。将文件保存到“缓存”文件夹。返回这样的JSON对象:{“进步”:0}
  • 定期(每秒左右)消防另一个的getJSON()的PHP脚本读取下载进度的txt文件,并返回一个像这样的JSON对象:{”进步 ':52} (百分比):
  • 当下载完成后,从PHP返回JSON这样的:{' 位置': '/cache/file_100.txt'}
    • 当阿贾克斯成功回调看到“位置”,该文件已经完成,因此显示链接。

我不知道,你应该使用什么样的文件的实际下载。使用PHP和stream_notification_callback做下载(和输出进度)的问题是,整个文件就会被下载到内存中,这是没有好处的1 GB的文件。

也许使用wget来做实际下载会更好。

+0

文件的范围可以从1mb到1000mb。 jobserver是100mbps,所以下载速度也很快,前端也是如此。 txt文件。文件分别被重新生成为编号相同的文件名,如example.txt – KJW 2010-12-11 20:39:08

相关问题