2011-04-17 57 views
1

我工作的一個Web應用程序,您的庫存家居用品。我在那裏90%,除了現在我需要找出一種方式來導出照片,如果用戶選擇。我設法將這些項目導出爲CSV文件,但如果他們無法獲得照片,那麼有什麼好處呢?我目前使用的MongoDB的後端,但無論我如何存儲他們,我需要在用戶點擊一個按鈕「導出照片」的一種方法,它會壓縮成一個文件供用戶下載。導出照片...如何有效處理這些請求?

我唯一擔心的是,如果他們已經儲存的數百張照片是什麼?

回答

2

要避免吹出來的你的PHP程序,我建議你通過一個在文件系統上的一個臨時目錄中轉儲文件出來MongoDB的一個,然後用exectarzip相結合,把它變成一個壓縮存檔你發送給用戶。

當然,這可能會導致網站的DDoS很糟糕,所以最好仔細寫一下,例如,如果用戶有超過100張圖片,使用帶有Gearman或RabbitMQ服務器的隊列可能是一件好事,然後你可以告訴他們,一旦他們的檔案下載鏈接準備好了,他們會收到一封電子郵件?它不應該是一個每天都導出我所有的圖片,所以可能是可以接受的。

+0

我肯定會考慮的Gearman,你是正確的,它可能會導致混亂,我想避免的最後一件事是用戶點擊像沒有明天。我最終可能會做的是一個手動過程。有人需要下載他們的整個存檔的機會很渺茫,但如果用戶需要他們,我不介意手動進行並提供下載鏈接。 – luckytaxi 2011-04-17 13:50:32

0

您可以導出檔案記錄他們的最後一次嘗試,並只允許一次每隔一小時左右(他們可能會做錯事第一次所以它總是以沒有太長時間保質期是個好主意)。

+0

確實如此,但我越想越多,可能遇到的問題就越多。我想讓整個網站自給自足,但費用是多少?我看過我的一些競爭對手網站,其中許多網站不提供導出照片的功能。這是我想要解決的問題,但也許我現在應該立即發佈,並在以後擔心。 ;-) – luckytaxi 2011-04-17 14:04:30