[解決済み] S3での1ディレクトリあたりの最大ファイル数
質問
100万枚の画像がある場合、フォルダやサブフォルダの階層構造で保存するのがよいのでしょうか、それともバケツにそのまま(フォルダなしで)放り込むのがよいのでしょうか?
すべての画像を階層構造のないバケットにダンプすると、LIST の動作が遅くなるのでは?
フォルダやサブフォルダをその場で作成し、その ACL を (プログラムで) 設定することに、大きなオーバーヘッドがあるでしょうか?
どのように解決するのですか?
S3は階層的な名前空間を尊重しません。各バケットには、キーからオブジェクトへのマッピングが(関連するメタデータやACLなどと共に)いくつも入っているだけです。
オブジェクトのキーが'/'を含んでいても、S3はパスをプレーンな文字列として扱い、全てのオブジェクトをフラットなネームスペースに置きます。
私の経験では、オブジェクト数が増加すると、LIST操作に(線形に)時間がかかりますが、これはおそらく、Amazonサーバーとクライアントへのワイヤに必要なI/Oが増加することによる症状です。
しかし、検索時間はオブジェクト数とともに増加するようには見えません。これはおそらく、Amazon 側のある種の O(1) ハッシュテーブル実装によるもので、同じバケットに多くのオブジェクトを持つことは、通常の使用 (LIST ではない) では小さなバケットと同じようにパフォーマンスが高いはずです。
ACL については、バケットと個々のオブジェクトにグラントを設定することができます。階層がないため、この 2 つだけが選択肢となります。もちろん、何百万ものファイルがある場合、バケツ全体でできるだけ多くの権限を設定することで、管理者の頭痛の種を大幅に減らすことができますが、以下の権限しかないことを覚えておいてください。 グラント 権限を与えるだけで、それを取り消すことはできません。したがって、バケツ全体の権限は、そのすべてのコンテンツに対する ACL の最大限のサブセットであるべきだということを覚えておいてください。
のために、別々のバケットに分割することをお勧めします。
- 全く異なるコンテンツ - 画像、音声、その他のデータ用に別々のバケットを持つことで、より正常なアーキテクチャになります。
- 大幅に異なる ACL - 各オブジェクトに特定の ACL が適用される 1 つのバケットと、異なる ACL が適用されオブジェクト固有の ACL が適用されない 2 つのバケットとがある場合、2 つのバケットを使用します。
関連
-
[解決済み] Linuxで特定のテキストを含むすべてのファイルを検索するにはどうすればよいですか?
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] フォルダとそのサブフォルダ/ファイルのパーミッションを一括で変更する方法
-
[解決済み] Node.jsでファイルを書き込む
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Git リポジトリに空のディレクトリを追加するには?
-
[解決済み] forループの中で<と<=のどちらを使うべきか [閉じた状態].
-
[解決済み] OFFSET / FETCH NEXTからの総行数取得
-
[解決済み] なぜ、条件付の手は分岐予測失敗の影響を受けないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] forループの中で<と<=のどちらを使うべきか [閉じた状態].
-
[解決済み] CUDAカーネルのグリッドとブロックの寸法はどのように選択するのですか?
-
[解決済み] ファイルキャッシュをクリアしてパフォーマンステストを繰り返す
-
[解決済み] OFFSET / FETCH NEXTからの総行数取得
-
[解決済み] なぜSSEスカラーsqrt(x)はrsqrt(x) * xより遅いのですか?
-
[解決済み] Entity Frameworkのクエリは遅いが、SqlQueryの同じSQLは速い。
-
[解決済み] translateZ(0)に対するCSSのパフォーマンス
-
[解決済み] Rでdata.frameをマージ/ジョインする最速の方法は何ですか?
-
[解決済み] Jaro-Winkler距離とLevenshtein距離の違い?[クローズド]
-
[解決済み] Laravelは本当にこんなに遅いのか?