2016-06-15 4 views
-1

私たちは開発段階にあります。専用のインフラストラクチャを使用する予定でしたが、この決定をAWSクラウドに交換しました。AWS S3はファイルをどのように保存しますか? (ディレクトリ構造)

アップロードされた画像について、ディレクトリ構造が似実装されました:

web_rootの\ {年} \ {月} \ {日} \ {形} _ {filename_md5_hashは}

.JPEG小さいイメージの場合はs、元のサイズの場合はoです。小さな画像はフィルタを使用して作成されます。

問題はAWS S3がバケット内のディレクトリ構造を制御できないと聞きました。

私たちは初心者です。ある日、AWS S3から専用のインフラストラクチャに移行した場合、私たちは悪夢に直面します。

貴重な説明は常に大きな助けとなりました。これは、AWS S3のドキュメントで覆われているおかげで

+0

もう一つは冗長かもしれませんが、S3については、オブジェクトキー(= "パス")にフォルダが '/'でエミュレートされています。その名前にスラッシュを入れるだけで、オブジェクトをAPI上のフォルダにアップロードすることができます。フォルダを作成する必要はなく、ファイルが存在するときだけ存在します。コンソールや '/'を最後の文字として空のオブジェクトを作成することは可能ですが、完全には不要です。実際の階層は存在しないため、フォルダ内のファイル数には制限やパフォーマンスの問題はありません。それで遊びます。 –

+0

@ Michael-sqlbot、ありがとう –

答えて

4

:アマゾンS3で

Working with Folders

、バケットとオブジェクトは、オブジェクトがバケットに格納されている主要なリソースです。 Amazon S3は、典型的なファイルシステムのような階層のないフラットな構造を持っています。しかし、組織の簡素化のために、Amazon S3コンソールは、オブジェクトをグループ化する手段としてフォルダ概念をサポートしています。 Amazon S3は、オブジェクトにキー名の接頭辞を使用してこれを行います。

たとえば、コンソールにphotosという名前のフォルダを作成し、myphoto.jpgという名前のオブジェクトを格納することができます。オブジェクトは、キー名photos/myphoto.jpgで保存されます。photos/が接頭辞です。

...

あなたは、フォルダはなく、バケット内のバケット内のフォルダを持つことができます。 オブジェクトを直接アップロードして、というフォルダにコピーすることができます。フォルダは作成、削除、公開することができますが、名前を変更することはできません。オブジェクトはあるフォルダから別のフォルダに移動できます。

だから、あなたは確かにあなたのバケツに類似したフォルダ構造を使用してS3にファイルをアップロードすることができます

http://{bucket}.{endpoint}.amazonaws.com/web_root/{year}/{month}/{day}/{type}_{filename_md5_hash}.jpeg

それとも

http://{endpoint}.amazonaws.com/{bucket}/web_root/{year}/{month}/{day}/{type}_{filename_md5_hash}.jpeg

+0

この説明はありがとうございます。 –

1

S3は、通常のファイルシステムではありませんそれはそのようなファイル構造を持っていませんが、オブジェクト参照のためのネストされたキーと、ファイルシステムのようなふりをしていますAPIを使用します(aws s3 lsを使用してバケットを一覧表示し、ファイルシステムと同じようにオブジェクトツリーを移動するときにバケットを使用してkepを実行します)。あなたがオブジェクトを作成する場合は

だからfoo_ashdbasd.jpegと呼ばれ、通常、あなたはそれはあなたが単にweb_root/2016/06/15/foo_ashdbasd.jpegと呼ばれるあなたのS3バケット内のオブジェクトへの書き込みこのweb_root\2016\06\15のようなフォルダ構造に座ってしたいと思います。

+0

ありがとうございました –

関連する問題