导出照片......如何有效地处理此类请求?

时间:2011-04-17 13:33:44

标签: php mongodb

我正在开发一个可以清点家居用品的网络应用。我90%在那里,除非现在我需要找出一种方法来导出照片,如果用户选择的话。我已设法将这些项目导出为CSV文件,但如果他们无法拥有自己的照片,那有什么用呢?我目前正在使用MongoDB作为后端,但无论我如何存储它们,我都需要一种方法,用户点击“导出照片”按钮,然后压缩成一个文件供用户下载。

我唯一担心的是如果他们存储了数百张照片?

2 个答案:

答案 0 :(得分:2)

为了避免破坏你的php进程,我建议你将文件从MongoDB中逐个转储到文件系统的临时目录中,然后使用exec结合tar或{ {1}}将其转换为您发送给用户的压缩存档。

当然,这可能会导致您网站的DDoS非常糟糕,因此您最好以谨慎的方式编写,即如果用户有超过100个图像,使用Gearman或某些RabbitMQ服务器的队列可能是一件好事,然后你可以告诉他们,一旦他们的档案下载链接准备好了,他们会收到一封电子邮件吗?导出我假设的所有照片不应该是日常事情,所以可以接受。

答案 1 :(得分:0)

您可以记录他们导出存档的最后一次尝试,并且每小时左右只允许一次(他们第一次可能会做错事,所以最好不要有太长的过期时间。)