私はユーザーがファイルをアップロードできるウェブサイトを実装しています。アップロードされたファイルを今後どのように簡単に管理できるように、アップロードフォルダをどのように構成するべきなのだろうか。別のユーザーに異なるサブフォルダ(例えば、user1のアップロード/ user1、user2のupload/user2など)を提供するか、それらをすべて同じフォルダに入れる必要がありますか?アップロードしたファイルの名前を変更する必要がありますか? (私は多くのウェブサイトがこれをやっていることを知っています!)アップロードされたファイルのフォルダの構造
答えて
BLOBを使用せず、ユーザーが任意の数のイメージを持っている場合は、サブフォルダを使用する必要があります。たとえば、ユーザーのIDの後に名前の付いたサブフォルダを作成できます。この理由の1つは、フォルダに多数のファイルが含まれている場合、指定された名前のファイルを見つけるのに時間がかかるため、アクセス時間が長くなることです。ファイルが保存されているときにファイルの名前を変更して、名前が重複しないようにすることもできます。新しく生成された名前をDBに保存することを忘れないでください。
これらの名前を変更すると、たとえばログインしていない人に「隠す」ことができれば便利です。元の名前をDBに保存するだけです。
また、BLOB型のSQLテーブルにすべてを格納することができます。数GBでもかまいません。ファイル名、ユーザー名などを関連付けることができます。
DBAを不必要に大きくする可能性があるため、同僚はBLOBタイプを使用しないでくださいと言ったことがあります。とにかく、私はまだアップロードされたファイルの場所について混乱していますが、ファイルの名前変更の目的についてあなたの答えをお寄せいただきありがとうございます –
それはDBを拡大しますが、ファイルを使用するとディレクトリを拡大するので、あなたのポイントは何ですか?それは全く減速しません。 – DanRedux
- 1. フォルダ構造内のリンクされたファイル
- 2. アップロードされたファイルのフォルダのリンク
- 3. Dropzone.js - フォルダ構造と単一のファイルをアップロードする
- 4. サーバレスNodeJSファイル/フォルダ構造
- 5. Sensenet API:クライアントを使用してファイルをフォルダ構造にアップロード
- 6. Googleドライブにアップロードされたファイルとフォルダ
- 7. Rails 3.1 Paperclip - アップロードされたファイルのフォルダ構造を整理するより良い方法は?
- 8. ファイルシステム構造/ファイル名でVisual Studioフォルダ/ファイル名構造を同期
- 9. フォルダ構造のzipファイルをC#
- 10. RSpecのスコープは、ファイルやフォルダ構造
- 11. ファイルを別のフォルダ構造にコピー
- 12. ASP.NET MVCのビューのネストされたフォルダ構造
- 13. プロジェクトファイルのフォルダ構造
- 14. JQueryのフォルダ構造
- 15. Symfonyのフォルダ構造
- 16. Android Studioのフォルダ構造が変更されました
- 17. Jquery Mega Menuマスターページネストされたフォルダ構造の問題。
- 18. Htaccess Redirect - フォルダ構造が追加されたサブドメインへのURL
- 19. PHPファイルとフォルダ構造の上映は、私は次のフォルダ構造を持ってそれを
- 20. Nightwatchjsフォルダ構造
- 21. Railsフォルダ構造
- 22. 年月PowershellでアップロードしたFTPファイルの日のディレクトリ構造
- 23. コアデータ(ファイルとフォルダ)でファイルシステム構造をシミュレート
- 24. のEclipse:Cプロジェクトのフォルダ構造
- 25. Laravelの別のフォルダ構造
- 26. Javaパッケージ構造とフォルダ構造
- 27. 電子アプリケーションのフォルダ構造
- 28. リソース内のiOSフォルダ構造
- 29. 平均スタックアプリケーションのフォルダ構造
- 30. サイドバーのVSCフォルダ構造
私は解決策を見つけました。次のようにアップロードフォルダーを構成するように指示しています。メインフォルダーは 'upload'と呼ばれ、3つのレベル(例:' upload/0/0/file.jpg')から成ります。 'upload/0/0'フォルダに1024個のファイルがある場合、自動的に' upload/0/1'フォルダが作成されます。 'upload/0'フォルダは1024個のサブフォルダ(' upload/0/0'から 'upload/0/1023'まで)を持つことができます。同様に、フォルダ 'upload'も1024個のサブフォルダを持つことができます。したがって、最大で2^30個のファイルを格納できます。毎日、ユーザーが合計1024ファイルをアップロードすると、スペースを使い切るのに2873年かかります。それが実現可能だと思いますか? –
私はこのようなことをする方がいいかもしれないと思います:ユーザーのIDで第1レベルのサブディレクトリに名前を付けます。次のステップは、ユーザーがアップロードした各イメージに一意のIDを割り当てる場合にのみ有効です。次に、第2レベルのサブディレクトリの名前をstrval($ imgId%DIVISOR_CHOSEN_BY_YOU)とすることができます。場合によっては、これは各サブディレクトリ内の画像の数を減らすかもしれない、と私は思う。しかし、私はこれについて専門家から遠く離れていることに注意してください... – Exander