バケットに多数のオブジェクトが含まれている場合、プレフィックス検索を使用して、バケット全体を参照せずにオブジェクトやディレクトリをすばやく特定できます。
プレフィックス検索の仕組み
プレフィックスとは、オブジェクト名の先頭と一致する文字列です。プレフィックスを入力すると、OSS は現在のディレクトリレベルでその文字列で始まるすべてのオブジェクトおよびディレクトリを返します。これは、フォルダ内のファイルを名前でフィルターする操作に似ています。
以下の 2 つの制約が適用されます。
大文字・小文字を区別:プレフィックス
ExampleはExampleFile.jpgには一致しますが、exampleFile.jpgには一致しません。現在のレベルのみ:検索対象ディレクトリ直下にあるオブジェクトおよびディレクトリのみが返されます。サブディレクトリ内のコンテンツは含まれません。
フラット検索と再帰的リスト表示の違い
プレフィックス検索は現在のディレクトリレベルのみを対象とします。すべてのサブディレクトリレベルにわたってすべてのオブジェクトを一覧表示する必要がある場合は、代わりに以下のいずれかのアプローチを使用してください。
| アプローチ | 方法 |
|---|---|
| API | GetBucket (ListObjects) オペレーション |
| CLI | PH1 ossutil コマンド |
制限事項
| 制約 | 詳細 |
|---|---|
| 一致タイプ | プレフィックスのみ — オブジェクト名の先頭と一致 |
| 大文字・小文字の区別 | 大文字・小文字を区別 |
| プレフィックス文字 | スラッシュ (/) を含めることはできません |
| 検索範囲 | 現在のディレクトリレベルのみ(非再帰的) |
OSS コンソールでのオブジェクト検索
OSS コンソール にログインします。
左側のナビゲーションウィンドウで、Buckets をクリックします。[Buckets] ページで、対象のバケットを見つけ、クリックします。
左側のナビゲーションツリーで、Object Management > Objects を選択します。
オブジェクトを検索します。OSS は、指定されたプレフィックスで始まる名前を持つ、現在のレベルのすべてのオブジェクトおよびディレクトリを返します。
ルートディレクトリの場合:検索ボックスにプレフィックスを入力し、Enter キーを押すか、
アイコンをクリックします。サブディレクトリの場合:ディレクトリ名をクリックしてそのディレクトリ内に移動した後、検索ボックスにプレフィックスを入力し、Enter キーを押すか、
アイコンをクリックします。
使用例
ルートディレクトリでの検索
TestBucket には以下が含まれます。
TestBucket/
├── Examplesrcfolder1/
│ ├── test.txt
│ └── abc.jpg
├── Exampledestfolder.png
└── example.txtプレフィックス Example で検索した結果は以下のとおりです。
| 結果 | 理由 |
|---|---|
Examplesrcfolder1 | 名前は 例 |
Exampledestfolder.png | 名前は Example |
返されないオブジェクト:example.txt(先頭が小文字の e のため)、および Examplesrcfolder1 内のファイル(現在のレベルの範囲外のため)。
サブディレクトリでの検索
Examplesrcfolder1 には以下が含まれます。
Examplesrcfolder1/
├── Projectfolder/
│ ├── a.txt
│ └── b.txt
├── ProjectA.jpg
├── ProjectB.doc
└── projectC.docプレフィックス Project で検索した結果は以下のとおりです。
| 結果 | 理由 |
|---|---|
Projectfolder | 名前は Project |
ProjectA.jpg | 名前は Project |
ProjectB.doc | 名前は Project |
返されないオブジェクト:projectC.doc(先頭が小文字の p のため)、および Projectfolder 内のファイル(現在のレベルの範囲外のため)。
ossbrowser を使用したオブジェクト検索
次のステップ
ディレクトリ間で再帰的にオブジェクトを一覧表示するには、GetBucket (ListObjects) API オペレーションまたは ossutil の ls コマンドを使用してください。