S3でフォルダーとプレフィックスを一覧表示する

プレフィックスとスラッシュ区切りでdosyaのワークスペースを一覧表示し、各ページ最大1,000キーの全ページをたどって、ファイルオブジェクトとフォルダーの共通プレフィックスを区別します。

最終確認日

スクリーンショットは英語版の画面です。

dosyaは各ワークスペースを、ワークスペースIDを名前とするS3バケットに対応付けます。ファイル名とフォルダー名はキーになり、スラッシュを区切り文字に指定すると、直下のファイルはオブジェクトとして、直下のフォルダーはCommonPrefixesとして返されます。

S3でフォルダーとプレフィックスを一覧表示する4段階の手順図。バケットには表示名ではなく正確なワークスペースIDを使用します。スラッシュ区切りとページ制限を指定し、最大1,000キーを要求します。大文字と小文字を区別し、末尾のスラッシュを残して子プレフィックスに絞ります。継続トークンでページをたどり、IsTruncatedがfalseになったら終了します。
このS3の手順図は、正確なワークスペースIDをバケットに使い、スラッシュ区切りで最大1,000キーを要求し、末尾のスラッシュと大文字・小文字を維持して子プレフィックスに絞り、継続トークンでページをたどってIsTruncatedがfalseになったら終了するまでの流れを示します。スクリーンショットを原寸で開く。

始める前に

S3が許可された読み取り可能またはフルアクセスのAPIキーを使用してください。アップロード専用キーでもクライアントの接続処理でバケットを一覧表示できますが、オブジェクトの一覧取得ではAccessDenied: API key scope ‘upload’ cannot list filesが返されます。メンバーロールでもS3とファイルへのアクセスを両方許可する必要があります。

フォルダーに固定されたキーでは、そのフォルダーが論理ルートになります。プレフィックスは固定先からの相対パスなので、表示されない親パスを先頭に追加しないでください。

手順

  1. バケットを一覧表示し、ワークスペースの正確なwks_…値を選択してください。表示名で代用しないでください。
  2. delimiter=/と、1000以下のmax-keysを指定してルートを要求してください。
  3. 返されたContentsとCommonPrefixesを分けてください。共通プレフィックスは/で終わり、dosyaのフォルダーを表します。
  4. photos/などの子プレフィックスを1つ選び、大文字・小文字と末尾のスラッシュをそのままにして次の一覧を要求してください。
  5. IsTruncatedがtrueの場合、次のV2リクエストにNextContinuationTokenを渡してください。V1クライアントではNextMarkerで続行してください。
  6. 最終ページで切り詰めがないことを確認してから終了し、全結果をdosyaで許可されたフォルダーと比較してください。
「S3でフォルダーとプレフィックスを一覧表示する」の参考画面: dosyaのS3互換アクセスの概要ページ。
「S3でフォルダーとプレフィックスを一覧表示する」の参考画面: dosyaのS3互換アクセスの概要ページ。スクリーンショットを原寸で開く。

期待される結果

クライアントは最初の1,000件以降の項目も飛ばさずに、アクセス可能なdosyaの階層をたどります。ファイル名に完全一致するプレフィックスではそのファイルだけが返り、名前の一部を指定すると同じ階層の項目が絞り込まれます。存在しないプレフィックスでは、バケットのルートに範囲を広げず空の結果が返ります。

バケットは表示されるのに内容が表示されない場合は、APIキーのスコープ、メンバーロールのファイル権限、隠しファイルのルール、フォルダーの固定先を確認してください。ワークスペースを固定したキーでは、そのワークスペースだけが一覧表示されます。

関連ガイド

この記事は役に立ちましたか?

評価の結果を読み込んでいます…

投票すると、回答を変更できるように、必要な投票用Cookieが最長180日間保存されます。

質問と回答

このガイドの手順について質問できます。質問は確認後に公開されます。

公開の質問には、アカウントの詳細、認証情報、非公開ファイルを含めないでください。これらについては 非公開サポート をご利用ください。

質問を読み込んでいます…

    dosyaアカウントにサインインすると、質問を投稿できます。

    やり直す前に結果を確認

    操作をもう一度確認する必要があるときは、次の共通の確認事項をご利用ください。