2011-11-18 21 views
0

我期待爲我的網絡應用程序的最終用戶提供在應用程序內的PHP頁面上拖放文件的功能,並讓它們自動上傳到S3中進行存儲。根據我所能找到的,我會在數據庫中存儲「指針」到S3文件。任何人都可以指向我的例子/文檔或其他可以更好地演示如何在我的應用程序中構建這個?我是S3的新手,所以如果有任何問題和/或更好的文件存儲解決方案(便宜的話),我全都是耳朵。PHP&S3:需要架構指導

感謝您的時間和協助。

回答

1

當用戶上傳文件到您的應用程序時,您的應用程序將文件上傳到S3。然後,您的應用程序將該文件的唯一S3 URL存儲在您的數據庫中。如果你不使用S3,你會做同樣的事情,除了參考文件是在本地驅動器上的文件。

然後,無論何時您想將文件提供給任何人,您都可以:a)讓您的應用程序從S3檢索文件,然後將其提供給您的用戶或b)直接向用戶提供S3 URL,並且他們可以從S3自己下載它。你使用的將取決於你的具體要求,但選項(b)通常更好,因爲它可以讓亞馬遜做所有的下載工作。 (b)如果您有私人文件不公開可用(如下載文件),甚至可以使用,因爲您可以通過URL過期來授予臨時訪問權限。

在許多情況下,S3將比僅使用本地存儲更昂貴。亞馬遜的存儲定價與零售硬盤價格競爭。但最重要的是,你還要支付S3的帶寬費用,這實際上可能會相當昂貴。如果您選擇S3因爲價格便宜,我認爲您選擇它是出於錯誤的原因。您應該選擇S3,因爲它具有擴展性,容錯性,並且您無需考慮增加存儲。

+0

謝謝。如果我向用戶提供10GB存儲空間(ala Dropbox或box.net),即使用戶沒有使用整個空間,S3still是否是最可行的解決方案? – user464180

+0

似乎Dropbox的工作正常。 S3在這方面很好,因爲你只需支付用戶實際使用的空間。 –