dosya CLIでフォルダーをダウンロードする
リモートフォルダーを特定して空のローカルフォルダーにツリーをダウンロードし、一部の失敗を確認して、名前とサイズを安全に比較します。
最終確認日
スクリーンショットは英語版の画面です。
dosya download --recursiveを使うと、dosyaの1つのフォルダー以下にある表示可能なすべてのファイルを、相対ツリーを維持してローカルフォルダーにコピーできます。空の保存先から始めてください。再帰モードでは、返された各パスに書き込む際、ファイルごとの上書き確認は行われません。
コピー元と保存先を準備する
認証情報にはワークスペースの読み取りアクセスが必要で、ワークスペースのロールはファイルへのアクセスとダウンロードを許可している必要があります。フォルダーへのアクセス制限、非表示のコンテンツ、ロックによって、スナップショットで取得できる範囲は狭まることがあります。
まず親フォルダーを一覧表示し、フォルダーIDをコピーするか、正確なパスを確認してください。
DOSYA_WORKSPACE_ID='ws_REPLACE_ME'
dosya ls --workspace "$DOSYA_WORKSPACE_ID"
新しいローカルの保存先を作成し、空であることを確認してください。
DEST='./dosya-folder-check'
mkdir -p "$DEST"
find "$DEST" -mindepth 1 -print -quit
最後のコマンドに何か表示された場合は、別のフォルダーを選んでください。再帰ダウンロードでは、単一ファイル用コマンドの対話的な上書き確認、--forceの確認、分割ダウンロードの再開用ファイル、ETagの整合性検証は適用されません。

手順
ワークスペースからの相対パスを使います。
dosya download --recursive reports/2026 \
--workspace "$DOSYA_WORKSPACE_ID" \
--output "$DEST"
代わりにフォルダーIDを使うか、参照にワークスペースを含めることもできます。
dosya download -r fld_REPLACE_ME -w "$DOSYA_WORKSPACE_ID" -o "$DEST"
dosya download -r "${DOSYA_WORKSPACE_ID}:reports/2026" -o "$DEST"
ws_ID:path形式は--workspaceより優先され、--workspaceは保存済みの標準設定より優先されます。パスを解決できない場合はNo such folder: …またはNo such file or folder: …が表示されます。再帰モードにファイルを指定すると失敗します。解決処理がフォルダーを明示的に要求するためです。
コマンドはリモートのスナップショットを1回取得し、選択したフォルダー以下のパスを構築して、最大500件のファイルIDごとに一時ダウンロードURLを要求します。各オブジェクトはまず.dosya-partialのパスに書き込まれ、レスポンスが完了してから名前が変更されます。パストラバーサルや安全でないシンボリックリンクなど、保存先の外に出るサーバー提供パスは拒否されます。
リモートフォルダーが空の場合、No files to download.と表示して正常に終了します。フォルダーはダウンロードしたファイルのパスによって表されるため、空の入れ子のサブフォルダーはローカルに作成されないことがあります。
完了結果を確認する
対話形式の出力はDownloaded N file(s) to DEST/で終わります。ファイルが1件失敗すると、Failed: relative/path: HTTP STATUSのような行を表示し、残りのファイルを処理して、完了したダウンロードの概要を表示した後、非ゼロで終了します。
自動処理では構造化された出力を要求してください。
dosya download --recursive reports/2026 \
--workspace "$DOSYA_WORKSPACE_ID" \
--output "$DEST" \
--json > recursive-download-result.json
python3 -m json.tool recursive-download-result.json
JSONにはok、downloaded、failuresがあります。ok: falseまたは失敗項目がある場合は、ローカルコピーが不完全と判断してください。完了したファイルは保存先に残るため、新しい空のフォルダーに再試行するか、部分的なツリーを意図的に調整するかを決めてください。2回目の実行がアトミックな置き換えになるとは限りません。
リモートとローカルの内容を比較する
ローカルのツリーとサイズを変更せずに記録してください。
find "$DEST" -type f -print0 \
| sort -z \
| xargs -0 -n1 sh -c 'wc -c < "$1" | tr -d "\n"; printf " %s\n" "$1"' sh
件数、相対名、バイトサイズをdosyaフォルダーと比較してください。バックアップをより確実に検証するには、重要なファイルをdosya download FILE -o NEW_PATHで個別にダウンロードしてください。このコマンドはCLIが対応するETagの内容確認を行います。または、信頼できるアプリケーションレベルのチェックサムを計算して比較してください。再帰モードはHTTPの完了と報告された失敗を確認しますが、保存された全ファイルのハッシュは計算しません。

よくある失敗から復旧する
Folder required. --recursiveの後にリモートフォルダーを指定してください。例:dosya download -r reports -o ./backup。
No workspace for "…". パスにws_ID:を追加するか、--workspaceを渡すか、標準のワークスペースを設定してください。
HTTPエラーがないのに一部のパスがない場合 キーまたはメンバーのアクセスがフォルダーに制限されていないか、コンテンツが非表示でないか、現在のロールにダウンロード権限があるかを確認してください。
ローカルファイルがすでに存在していた場合 再帰モードは準備済みの保存先向けで、各パスの上書き確認は行いません。以前のローカルコピーが置き換えられた場合はバックアップから復元し、空のフォルダーでやり直してください。
途中で処理が止まった場合 失敗の配列または標準エラー出力を確認して診断用に保存し、クリーンな検証には新しい保存先を使ってください。単一ファイルの.dosya-downloadによる再開動作はフォルダーの再帰処理には適用されません。
確認できる結果
コマンドは失敗0件で正常終了し、保存先には選択したリモートサブツリーの表示可能なファイルと同じパスとバイトサイズが含まれます。既存のローカルフォルダーは、この管理されたダウンロードが始まるまで空のままでした。
関連ガイド
この記事は役に立ちましたか?
評価の結果を読み込んでいます…
投票すると、回答を変更できるように、必要な投票用Cookieが最長180日間保存されます。
質問と回答
このガイドの手順について質問できます。質問は確認後に公開されます。
公開の質問には、アカウントの詳細、認証情報、非公開ファイルを含めないでください。これらについては 非公開サポート をご利用ください。
質問を読み込んでいます…
dosyaアカウントにサインインすると、質問を投稿できます。