わかりました、ある種の共有システム/サービスを開発中です。人々が独自のメディアをサーバーにアップロードできる場所。ビルドの大部分に PHP と mySQL を使用しており、現在は単一サーバー環境を使用しています。ただし、サイト/サービスを独自のサーバーに残して、今後6か月でメディアをサーバーのクラスターに移動する予定であるため、これをスケーラブルにする必要があります. とにかくそれはミュートポイントです。
私の目標、または希望は、アップロード時にファイルの名前を変更するときに別のファイルと衝突する可能性がほとんどない、非常にリスクの低い命名規則を考え出すことです。私はこれまでに多くの概念を読んできましたが、UUID (GUID) は私のすべてのニーズに最適な候補であることがわかりました。その可能性が非常に高いため、これまでに多くの共有イメージに到達できるとは思えませんでした。
私の問題は、UUID に適した v3 または v5 を生成する関数を考え出すことです (それらは同じであることは理解していますが、v5 は現在 UUID の標準に 100% 準拠していません)。UUIDとその制約についてほとんど知らないと、後で必要に応じて正規表現を試みるときに、それらを一意または有効にすることができます。実行可能な解決策を思い付くことができないようです。また、v3 と v5 のどちらを使用する必要があるかもわかりません。またはそのことについてはv4。そのため、目的のバージョンの UUID タイプを返す関数に関するアドバイスとヘルプを探しています。
今のところどこから始めればよいかわからないので、まだ何も試していません。そのため、これらのファイルを多くのフォルダーに保存して、大きなディレクトリ リストによる負荷を相殺するつもりです。そのため、衝突のリスクも軽減しています。また、これらの名前を DB に保存し、関連付けられたフォルダーやその他の情報を各画像に関連付けているため、名前を変更するファイルの UUID をランダムに生成するときに発生する別の問題があります。複数の DB にクエリを実行したくありません。そのため、実際には関数呼び出しごとにおそらく 5 つの UUID を返し、クエリに一致するものがあるかどうかを確認し、一致しない最初のものを悪用することをお勧めします。
とにかく、私はこれがたくさんの読書であることを知っています、私はそれにコードがないことを知っています、うまくいけば、あなたの多くが投票に終わらないことを願っています。最初からこれに取り組む方法を真剣に知りたいので、できるだけ手間をかけずに必要に応じてスケールアップできるようにします。