皆さんはどのようにユーザーが投稿した画像を管理されてますか?
できればDBではなくディクトリ管理での意見が聞きたいです。
自分はよくQmailのように0番フォルダから始まり例えば3000個の画像がたまったら、1番のフォルダを作りという感じで作っています。
ただ、今回コミュニティサービスなのでどのように管理したらよいかなーと。
WPのように年フォルダ/月フォルダ/日フォルダ
のような仕組みがいいのか。
ご意見よろしくお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
コミュニティサービスとありますので、そのあたりを考慮し、私が設計するならば、、、
他のユーザとの絡みのないページでのアップロードの場合は、
/uploads/Users/<User ID>/<Hash>.(png|jpg)
- User ID: ユーザ毎に採番されたID値
- Hash: 画像ファイルからsha256等で取得したHash値
他のユーザとの絡みのあるページの場合(例えばグループ掲示板など)は、
/uploads/<Function ID>/<Thread ID>/<User ID>/<Hash>.(png|jpg)
- Function ID: 機能単位に採番したID値(グループ掲示板ならグループ掲示板としてIDを一つ振る)
- Thread ID: 例の掲示板ならばスレッド毎に裁判したID値
- User ID: ユーザ毎に採番されたID値
- Hash: 画像ファイルからsha256等で取得したHash値
と、なるべく小分けにします。
上記例のUser IDやThread IDも5桁を超えるのであれば、1000単位(最大でも2000〜5000くらい)毎にサブディレクトリを作成したほうが良いですね。
考えるべきは、
- 一つのディレクトリ配下のファイル数はなるべく最小になるようにする。
- 機能単位/ユーザ単位で探しやすい構成にする。
の2点を考慮しておけば、まとめて削除も、単一ファイルの削除も楽なんじゃないかと。
また、ご自身の記載にあるような、WPでの日付によるディレクトリ構造の選択は要件次第で選択しても良いかと。
要は日付単位でファイル操作の有り/無しという要件次第で。
投稿2014/11/11 06:18
総合スコア39
0
すでに回答にあるように、ディレクトリ直下の項目を少なくすると言う意図では、こんなのもあります。
Perlモジュールが置かれているCPANではAuthorのIDをばらして分けているようです。
IDの先頭1文字のディレクトリ / IDの先頭2文字のディレクトリ / IDのディレクトリ
こんな感じです。この方式をなんと呼ぶのかは知りませんが、何かの参考になれば。
投稿2014/11/11 06:40
総合スコア1356
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
開発に使用する言語やフレームワークによって変わりますが、
/uploads/[モデル名]/ハッシュ値.png
のようにモデル(テーブル)単位にすることが多い気がします。
例えば、ブログのPostモデル(postsテーブル)があった場合
/uploads/posts/4c286e182bc4d1832a8739b18c19ecaf9262c37a.jpg
のような感じです。
Ruby on Railsを使った場合はファイルアップロードにはCarrierWave(たまにPaperclip)を使います。
このときは、ディレクトリ構造はほぼデフォルトの設定で使っています。
投稿2014/11/11 04:39
総合スコア277
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2014/11/11 06:40
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2014/11/11 06:30