2010-06-02 54 views
5

我对此有一个普遍的问题。上传许多(2000 +)图像到服务器的最佳实践

当你有一个画廊时,有时候人们需要一次上传1000张图片。很可能,它将通过.zip文件完成。将这类事情上传到服务器的最佳方式是什么?很多时候,服务器都有超时,需要考虑。我想知道我应该寻找什么样的东西,以及处理大量正在上传的图像的最佳方式是什么。

我猜你会允许用户上传一个zip文件(假设超时不会影响你),并且这个zip文件被上传到一个特定的目录,假设在这种情况下创建一个目录为系统中的每个用户。然后,您将解压缩服务器上的目录,并扫描用户的文件夹以查找包含.jpg或.png或.gif文件(等等)的任何目录,然后相应地将它们导入到表中。我猜根据文件夹名称标记。

我可以遇到什么样的服务器端故障?

我知道可能有很多问题。即使是一般性的想法,我也可以进一步研究。谢谢!

此外,我会在Ruby on Rails中编程,但我认为这个问题适用于任何语言。

+0

图像有多大?你能给我们一个图像数量的上限吗? – Cam 2010-06-02 03:21:24

回答

2

没有理由不能用Web应用程序处理这种事情。有一对夫妇的优秀成分,将这个非常有用的:

  1. Uploadify(基于jQuery /闪光)
  2. plupload(从moxiecode,TinyMCE的人)

他们的理由有用的是,它在第​​一个例子中,它使用一个Flash组件来处理上传,所以你可以从文件浏览器窗口中选择一组文件(假设没有人会单独选择数千张图像......),并且使用plupload,与更多的平台一起支持拖放。

一旦你的界面工作,服务器端的东西只需要能够处理单独的上传,将它们与某种用户帐户相关联,并从那里它应该是非常简单的。

关于服务器端问题,这实际上是一个很大的问题,取决于同时使用应用程序的人数,图像大小以及发生后的任何处理。请记住,在脚本处理它们时,这些文件将保存在临时位置,并且在完成时将其删除,或者通过脚本复制到最终存储位置,因此空间/内存开销/超时可能是一个问题。

如果图片尺寸很大,比如raw或tif,那么这种东西仍然可以与分块上传一起工作,但实现某种FTP上传可能更容易。这是一个模糊的问题,但应该有足够的空间让你走;)

+0

谢谢丹普。有很多很好的答案,我会研究它们。谢谢大家! – jim 2010-06-03 22:06:23

1

因为它已经成为一个严重的应用程序的许多图像..从而给你的自由,建议在客户端上运行(像雅虎邮件/ Picassa中一样),将采取“管理”照顾一个软件(网络中断/恢复支持等)上传图像。

对于服务器端,您可以一次处理这些(假设您的客户端正在以这种方式发送)..因此保持简单。

+1

一个类似的选择是,你可以创建一个Java applet或者仍然可以在浏览器中运行的东西,而不是建议一个客户端,但给你更大的客户端控制权。 – Cam 2010-06-02 03:47:47

1

要么有一个客户端应用程序,要么一些Ajax代码逐个发送图像,以防止超时。或者,如果这对公众不可用。 FTP仍然有效...

1

我建议客户端应用程序(可能用AIR或Titanium编写)或告诉用户FTP是什么。

deviantArt.com例如提供FTP作为支付订阅者的上传方法,并且它工作得很好。

Flickr改为拥有它自己的应用程序。 “Flickr上传者”。