2012-12-20 80 views
1

上傳圖像時PHP將臨時圖像存儲在服務器上的本地服務器上。php臨時文件上傳目錄 - 關閉本地服務器

是否有可能更改此臨時位置,使其脫離本地服務器。

原因:使用沒有粘性會話的負載平衡,我不希望文件上傳到一臺服務器,然後在另一臺服務器上無法使用。注意:我沒有必要一次性完成文件上傳並處理文件。

首選的臨時位置應該是AWS S3 - 也只是有興趣知道這是否可能。

如果它不可能,我可以使文件上傳一個完整的過程,也將完成的文件放在最後的位置。

只是想知道如果PHP臨時映像/文件位置可以關閉本地服務器?

三江源

回答

1

您可以在您的ELB下的Instances上安裝S3存儲桶s3fs,以便您的所有上傳在應用程序服務器之間共享。關於/ tmp,請不要觸摸它,因爲目標是S3並且它是共享的 - 您不必擔心。

如果你有很多上傳,S3可能是瓶頸。在這種情況下,我建議設置NAS。就個人而言,我使用GlusterFS,因爲它擴展性好,而且非常容易設置。它有複製問題,但您可能根本不使用複製卷,並且您沒有問題。

另一個替代方案是CephSector/SphereXtreemFSTahoe-LAFSPOHMELFS和許多其他...

1

您可以直接從客戶端上傳文件到S3與在這篇文章中詳述了一些新的技術:

http://www.ioncannon.net/programming/1539/direct-browser-uploading-amazon-s3-cors-fileapi-xhr2-and-signed-puts/

否則,我個人會建議使用每臺服務器的tmp文件夾正是這個 - 臨時存儲。將文件放在服務器上後,您可以始終上傳到S3,然後在所有負載均衡服務器上訪問該S3。

+0

+1。值得一提的是:「所有這一切都已經到位,您現在應該可以使用支持CORS,XHR2和FileAPI的瀏覽器直接上傳到S3(目前幾乎所有的東西都是IE)。」 – Flavius

+1

「幾乎所有東西,但IE目前」。每個Web開發人員職業生涯的故事;) –

相關問題