0

S3 バケットのフォルダー内にすべてのクライアント ファイルを格納するファイル ホスティング アプリを構築しています。次に、S3 の使用量を最上位フォルダーごとに再帰的に追跡して、対応する各クライアントにストレージと帯域幅のコストを請求したいと考えています。

フロントエンドは django ですが、解決策は明白な理由から python にすることができます。

プログラムでクライアントごとにバケットを作成する方が良いですか?

クライアントごとにバケットを作成するアプローチを採用した場合、有効になっている場合、バケットのクラウドフロント公開のコストを取得することは可能ですか?

4

2 に答える 2

0

Amazonではアカウントごとに100バケットしか許可されていないため、ユーザーごとにバケットを作成することはできません。したがって、100人を超えるユーザーがいないことが確実でない限り、それは非常に悪い考えです。

理想的な解決策は、データベース内のDjangoアプリ自体の各ユーザーのストレージを記憶することです。アップロードするたびにバイトサイズを返すよりも、ファイルの保存にS3botoライブラリを使用していると思います。あなたはそれを保存するためにそれを使うことができます。

別の方法もあります。バケット内に多くのフォルダーを作成し、各フォルダーをユーザーに固有にすることができます。しかし、それでもアプリのストレージ使用量を覚えておくための最良の方法

于 2012-12-15T12:37:43.893 に答える
0

ニーズに応じて、タスクに対して複数のソリューションが存在する可能性があります。まず、Amazon DevPayがニーズに合っているかどうかを確認します。これにより、EC2 および S3 リソースの使用量に基づいてクライアントに請求できるようになります。

2 つ目のアイデアは、AWS アカウントのAccount Activity and Usage Reportsセクションを使用することです。これへのアクセスはIAM経由で付与できます。使用状況全体の詳細な統計が得られますが、これをバケットごとに分類できるとは思いません。

もう 1 つの方法は、Python で Amazon boto SDKを使用して、オブジェクトとそのサイズを取得することです。または、クライアント ソフトウェアでアップロード中にストレージのサイズを監視できます。上記の方法で得られた総支出と、クライアントごとの使用状況を手動で追跡することを組み合わせることで、おそらくすべてのクライアントの料金を計算できます。

于 2012-12-14T08:08:19.747 に答える