2012-12-14 96 views
0

我正在構建一個文件託管應用程序,該應用程序將所有客戶端文件存儲在S3存儲桶上的文件夾中。然後,我想跟蹤每個頂級文件夾遞歸的S3使用量,以便將每個相應客戶端的存儲成本和帶寬收回。如何使用python跟蹤s3存儲桶文件夾的使用情況?

前端是django,但解決方案可能是python,原因很明顯。

以編程方式爲每個客戶端創建存儲桶會更好嗎?

如果我確實按照爲每個客戶端創建存儲桶的方法進行操作,是否可以在啓用存儲時獲取存儲桶的雲端曝光成本?

回答

0

根據您的需求,可能有多種解決方案爲您的任務。首先看看Amazon DevPay是否適合您的需求,這應該允許通過使用EC2和S3資源來爲客戶計費。

第二個想法是使用AWS賬戶的Account Activity and Usage Reports部分。訪問此可以通過IAM授予。你會得到詳細的統計數據,儘管我不認爲你可以通過分解來解決這個問題。

另一種方法是使用Amazon boto SDK in Python來獲取對象及其大小。或者您可以在客戶端軟件中上傳期間監控存儲的大小。通過綜合使用上述方法的總支出和手動跟蹤每個客戶端的使用情況,您可以計算每個客戶端的收費金額。

0

不可能爲每個用戶創建一個存儲桶,因爲亞馬遜每個帳戶只允許存儲100個存儲桶。所以除非你確定沒有超過100個用戶,否則這將是一個非常糟糕的主意。

理想的解決方案將是在您的數據庫中記住每個用戶的存儲Django應用程序本身。我想你會使用S3 boto庫來存儲文件,而不是每次上傳後都返回字節大小。你可以用它來存儲它。

還有另一種出路,您可以在每個文件夾中爲用戶創建多個文件夾。但仍然是記住您的應用程序中存儲空間使用情況的最佳方式

相關問題