rcloneでファイルをダウンロードする

読み取り専用のrclone WebDAVリモートを使ってクラウドのファイルをダウンロードします。パスをプレビューし、ローカルでの競合に対処して、ファイルの内容を検証します。

最終確認日

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

rcloneでdosyaのクラウドストレージからファイルをダウンロードするには、リモートパスを先に、ローカルフォルダーを後に指定してください。この例ではAll/rclone-checksの内容を./sample-downloadに取得し、クラウド上の元ファイルはそのまま残します:

rclone copy dosya-webdav:All/rclone-checks ./sample-download --progress

新しいローカルの保存先を用意してください。自分のファイルで実行する前に、以下の設定とプレビューを確認してください。

「rcloneでファイルをダウンロードする」の手順図。リモートから空のローカルフォルダーにコピーし、ローカルファイルがリモートで選択した内容と一致することを確認します。
「rcloneでファイルをダウンロードする」の手順図。リモートから空のローカルフォルダーにコピーし、ローカルファイルがリモートで選択した内容と一致することを確認します。スクリーンショットを原寸で開く。

読み取り専用WebDAVリモートを準備する

公式ダウンロードページからrcloneをインストールし、rclone versionを実行してください。dosyaでキーのオーナーのアカウントにサインインし、ファイルがあるワークスペースを選択してください。アカウントにはファイルへのアクセス権限とダウンロード権限が必要で、ロールでWebDAVが許可されている必要があります。

プロフィール→API キーでAPI:APIキーを作成を選択し、このダウンロード用に読み取り専用を選び、制限と有効期限 → プロトコルでWebDAVを許可してください。アクセス可能なワークスペースとフォルダーの範囲を確認し、キーを生成の後でキー全体を保存してください。アップロードのみの認証情報では読み取りが拒否されます。選択したワークスペースの連携 → WebDAVで、エンドポイントと認証情報にあるHTTPSアドレス全体を、マウントパスと末尾のスラッシュを含めてコピーしてください。

rclone configを実行し、dosya-webdavという名前のリモートを作成して、次のように入力してください:

設定値
Storagewebdav
URLコピーしたワークスペースのWebDAVマウントアドレス
Vendorother
UserAPIキーのオーナーのメールアドレス
Password非表示のパスワード入力画面でAPIキー全体を入力
Bearer token空欄
Advanced configurationこの設定ではNo
Keep remoteYes

これらの設定は公式WebDAVバックエンドリファレンスに記載されています。設定ファイルを保護し、プロセスの引数に認証情報を含めないでください。パスワードの難読化は元に戻せます。rclone obscureを参照してください。

手順:正しいコピー元を探してプレビューする

rclone listremotes
rclone lsf dosya-webdav:
rclone lsf dosya-webdav:All/rclone-checks --recursive
rclone copy dosya-webdav:All/rclone-checks ./sample-download --dry-run --progress

読み取り可能な既存のクラウドフォルダーに置き換えてください。通常の接続ではAll、Documents、Videos、Images、Shared、Deletedが一覧表示され、All/で現在のワークスペースのツリーにアクセスできます。アンカー付きキーでは許可されたフォルダーの子項目が直接表示されるため、代わりにdosya-webdav:rclone-checksが正しいコピー元となる場合があります。キーがrclone-checks自体に固定されている場合はdosya-webdav:を使ってください。すべてのアドレスにAll/を追加するのではなく、ルートの一覧を確認してください。

プレビューでは実際の転送は行われません。名前とリモートからローカルへの方向を確認し、--dry-runを外してコピーを再実行してください。スペースを含むローカルパスは引用符で囲む必要があります。相対ローカルパスはターミナルの現在のフォルダーを基準に解決されます。保存先フォルダーがなければ作成され、rclone-checksという階層を追加せずにコピー元フォルダーの内容が保存されます。これらのパスの規則はrclone copyに記載されています。

rclone-checksサンプルをダウンロードするターミナルの画面。sample-downloadへの2件の転送が完了し、コマンドは正常に終了しています。
ネイティブターミナルでの検証:rcloneがAll/rclone-checks内の2件のファイルを別のsample-downloadフォルダーにダウンロードし、終了コード0で終了します。スクリーンショットを原寸で開く。

この実際の画面では、分離されたdosyaワークスペースのテストデータに対してmacOS上のrclone 1.75.2を使用しています。ダウンロードした2件のファイルは元のバイトと照合しました。実際のワークスペースアドレスと選択するファイル名は異なります。この画面は本番での転送やすべてのOSでの動作を検証したものではありません。

既存のローカルファイルと中断されたダウンロード

copyは保存先にしか存在しないローカルファイルを保持しますが、同じ相対パスにある異なるファイルは置き換えられることがあります。競合を避けるには空のフォルダーを選んでください。既存のフォルダーに意図的に追加ダウンロードする場合、--ignore-existingは既存のパスをスキップします。同名の古いファイルや不完全なファイルもスキップするため、整合性の確認にはなりません。このフラグはrcloneのコピーオプションに記載されています。

rcloneは標準で一時ファイルを経由してダウンロードし、完了時に名前を変更します。--inplaceはこの動作を変更し、保存先ファイルが途中までしか書き込まれない場合があります。中断後は正常に取得したローカルファイルを残し、確認済みのコピーを再実行してください。rcloneは変更がないと判断した項目をスキップできますが、途中までダウンロードしたファイルが次の実行で同じバイト位置から再開されるとは限りません。特に比較用メタデータが限られる場合は、再試行後に結果を確認してください。rcloneのローカルバックエンドとインプレース転送オプションを参照してください。

dosya WebDAVはバイト範囲取得への対応を通知し、1リクエストにつき1つのバイト範囲を返します。有効な範囲にはContent-Rangeとともに206を返し、満たせない範囲には416を返します。範囲リクエストを含む各ストリーミングGETは、それぞれ使用スロットを占有します。範囲取得への対応は、クライアントが途中のファイルを再開できることを保証するものではありません。

rcloneは通常4件のファイルを同時に転送します。これとは別に、リモートからローカルへのファイルが標準のしきい値である256 MiBを超える場合、4つの範囲ストリームを同時に使うことがあります。--transfers 1だけを設定すると並列ファイル数は制限されますが、1件の大きなファイルが1スロットの利用枠を超える場合があります。両方の同時実行設定を使って確認済みのダウンロードを再試行してください:

rclone copy dosya-webdav:All/rclone-checks ./sample-download --progress --transfers 1 --multi-thread-streams 0

--multi-thread-streams 0は各ファイル内の複数ストリームを無効にします。並列ファイル数の設定とマルチスレッド設定は異なる種類の同時実行を制御します。どちらも日次送信量やリクエスト頻度の制限を解除しません。再試行する前に、HTTP 429の再試行に関する指示があれば従ってください。

ダウンロードしたバイトを検証する

コピー直後に完了サマリーと終了ステータスを確認してください。macOS/Linuxではecho $?、PowerShellでは$LASTEXITCODEを使います。rcloneはファイルを転送する必要がなかった場合も含め、エラーが残っていなければ0を返します。0以外が返された場合は、それ以前のエラーを確認してください。終了コードのリファレンスに分類が記載されています。

ダウンロードしたフォルダーを一覧表示し、名前と容量をリモートで選択した内容と比較して、代表的なファイルを開いてください。バックエンドが互換性のあるハッシュを公開していることに依存しない、より詳細な確認方法は次のとおりです:

rclone check dosya-webdav:All/rclone-checks ./sample-download --download --one-way

この操作はリモートのデータを再度読み取り、ローカルのデータと比較します。どちらも変更しません。--one-wayはローカルにのみある余分なファイルを無視します。不一致やファイルの欠落に関する報告の読み方はrclone checkリファレンスを参照してください。フォルダー全体を取得する場合は、成功件数だけでなく、想定したファイルを確認してください。

otherベンダーを使う場合、通常のWebDAVではrcloneのハッシュと更新日時の比較機能をすべて利用できません。dosyaは利用可能な場合にファイルの日付、ETag、保存済みのSHA-256プロパティを返しますが、汎用クライアントがそれらをバイト単位の比較に使うことは保証されません。この設定ではUnixの所有権、権限、拡張属性、元のメタデータ全体は保証されません。

送信量、権限による失敗、クラウドに残る内容

ダウンロードしてもdosyaのコピー元ファイル、共有設定、バージョン履歴はそのまま残ります。独立したローカルコピーが作成され、後でクラウドへのアクセスが取り消されてもパソコンに残ります。アカウントのアクセス権を取り消しても、ダウンロード済みファイルは消去されません。

各WebDAV GETは、ストリーミング開始前にリクエストされた本文容量を適用される送信量の利用枠に計上します。範囲リクエストは要求した長さで計上されます。HEADと変更なしを示す条件付きレスポンスでは本文の送信量は計上されません。繰り返しのダウンロードとcheck --downloadは追加の利用枠を消費し、中断しても返還されるとは限りません。組み込みの無料プランのフォールバックは日次100 GiBで、実際の上限は有効なプランカタログと、より厳しいキーやロールの制限によって決まります。プロトコル通信にはプランによるリクエスト数や同時実行数の上限は適用されませんが、キーやロールに明示された制限は引き続き適用されます。

サーバーの応答再試行前の対処
Unauthorized (401)キーのオーナーのメールアドレス、キー全体、有効期限、取り消しの有無を確認してください。
API key scope 'upload' cannot download files (403)アップロード専用の認証情報を読み取り可能なものに置き換えてください。
Download not allowed (403)ワークスペースの管理者にダウンロード権限の確認を依頼してください。
Resource not found (404)リモートのルート、パス、フォルダーの範囲、このメンバーシップで項目を表示できるかを確認してください。
Locked (423)許可されたdosyaの手順でファイルまたは上位フォルダーのロックを解除してください。
使用量による拒否 (429)Retry-Afterがある場合は従い、送信量、リクエスト、転送の制限を確認してください。

検証が完了するまで、ダウンロードしたフォルダーと元のクラウドの一覧を保持してください。読み取りの失敗を解決するためだけにmoveやsyncを代わりに使わないでください。これらのコマンドは削除への影響が異なります。

期待される結果

選択したリモートファイルがsample-download内で読み取れ、想定した内容と一致します。元のワークスペースフォルダーは残り、コピーによってクラウドファイルやローカルにのみある余分なファイルは削除されていません。

関連ガイド

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

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

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

質問と回答

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

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

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

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

    やり直す前に結果を確認

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