0

s3 に大量の画像 (数十万) を含むバケットがあります。各画像には非常にユニークなファイル名 (長いハッシュ名) があり、データベース内の対応するオブジェクト ID に従って名前が付けられたサブディレクトリに保存されます。

簡単な例:

/bucket/1/red-1.jpg
/bucket/1/red-2.jpg
/bucket/1/red-3.jpg
/bucket/2/blue-1.jpg
/bucket/2/blue-2.jpg
/bucket/2/blue-3.jpg

問題は、データベース内の ID が変更され、誤ってサブディレクトリの名前が変更されていないことです。これは、私のデータベースによると、画像red-1.jpgは にあるはずです/bucket/2が、実際にはまだ にあることを意味します/bucket/1red-1.jpgしたがって、すべてのサブディレクトリを検索し、 というファイルを見つけて、それを正しいディレクトリ (この場合は ) に移動できる必要があります/bucket/2

注:ファイルの移動に関する部分は非常に簡単です。最大の問題は、名前はわかっているが現在のディレクトリではない、これらの画像のパスを効果的に検索して見つける方法です。

私はルビーを使用していますが、何でも使用することにかなりオープンです。

PS。アマゾンのクラウド検索について何か見ましたが、それがこれに使用できるかどうかはわかりません..

4

1 に答える 1

1

特定のサフィックスを持つキーのみを一覧表示する簡単な方法はありません。

list_objects探しているファイル名に対応するオブジェクトを見つけるには、メソッドを使用してすべての一般的なプレフィックス (フォルダー) を反復処理する必要があります。

于 2012-12-05T07:36:10.547 に答える