S3でフォルダーとプレフィックスを一覧表示する
プレフィックスとスラッシュ区切りでdosyaのワークスペースを一覧表示し、各ページ最大1,000キーの全ページをたどって、ファイルオブジェクトとフォルダーの共通プレフィックスを区別します。
最終確認日
スクリーンショットは英語版の画面です。
dosyaは各ワークスペースを、ワークスペースIDを名前とするS3バケットに対応付けます。ファイル名とフォルダー名はキーになり、スラッシュを区切り文字に指定すると、直下のファイルはオブジェクトとして、直下のフォルダーはCommonPrefixesとして返されます。

始める前に
S3が許可された読み取り可能またはフルアクセスのAPIキーを使用してください。アップロード専用キーでもクライアントの接続処理でバケットを一覧表示できますが、オブジェクトの一覧取得ではAccessDenied: API key scope ‘upload’ cannot list filesが返されます。メンバーロールでもS3とファイルへのアクセスを両方許可する必要があります。
フォルダーに固定されたキーでは、そのフォルダーが論理ルートになります。プレフィックスは固定先からの相対パスなので、表示されない親パスを先頭に追加しないでください。
手順
- バケットを一覧表示し、ワークスペースの正確な
wks_…値を選択してください。表示名で代用しないでください。 delimiter=/と、1000以下のmax-keysを指定してルートを要求してください。- 返された
ContentsとCommonPrefixesを分けてください。共通プレフィックスは/で終わり、dosyaのフォルダーを表します。 photos/などの子プレフィックスを1つ選び、大文字・小文字と末尾のスラッシュをそのままにして次の一覧を要求してください。IsTruncatedがtrueの場合、次のV2リクエストにNextContinuationTokenを渡してください。V1クライアントではNextMarkerで続行してください。- 最終ページで切り詰めがないことを確認してから終了し、全結果をdosyaで許可されたフォルダーと比較してください。

期待される結果
クライアントは最初の1,000件以降の項目も飛ばさずに、アクセス可能なdosyaの階層をたどります。ファイル名に完全一致するプレフィックスではそのファイルだけが返り、名前の一部を指定すると同じ階層の項目が絞り込まれます。存在しないプレフィックスでは、バケットのルートに範囲を広げず空の結果が返ります。
バケットは表示されるのに内容が表示されない場合は、APIキーのスコープ、メンバーロールのファイル権限、隠しファイルのルール、フォルダーの固定先を確認してください。ワークスペースを固定したキーでは、そのワークスペースだけが一覧表示されます。
関連ガイド
この記事は役に立ちましたか?
評価の結果を読み込んでいます…
投票すると、回答を変更できるように、必要な投票用Cookieが最長180日間保存されます。
質問と回答
このガイドの手順について質問できます。質問は確認後に公開されます。
公開の質問には、アカウントの詳細、認証情報、非公開ファイルを含めないでください。これらについては 非公開サポート をご利用ください。
質問を読み込んでいます…
dosyaアカウントにサインインすると、質問を投稿できます。