リモートの転送元ファイルが変わった場合に再試行する

dosyaが長さや検証情報の変更を検出したら、変更される可能性のある転送元URLを差し替えます。新しいジョブを開始し、最初から転送したファイルを確認します。

最終確認日

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

dosyaは転送前に転送元を事前確認し、完了まで同じオブジェクトであることを前提とします。範囲ジョブはIf-Rangeを通じて強いETagを送信します。206を想定したところ200のレスポンスが返された場合、検証情報が一致しなくなったことを示します。ストリームモードでも受信したバイト数を事前確認時のサイズと比較します。

リモートの転送元ファイルが変わった場合に再試行する4段階のフロー図。予定サイズと現在の進捗を記録し、失敗した行を証拠として残します。変更される最新ファイルのリンクを避け、変更されない1つのリビジョンのURLを取得します。新しい転送をゼロバイトから開始します。転送元が変わった部分データは再開できません。保存された長さを最終的な転送元と比較し、バイト数が一致してから片付けます。
この図は、予定サイズと現在の進捗を記録し、失敗した行を証拠として残すところから始まります。変更される最新ファイルのリンクを避け、変更されない1つのリビジョンのURLを取得します。新しい転送をゼロバイトから開始します。転送元が変わった部分データは再開できません。保存された長さを最終的な転送元と比較し、バイト数が一致してから片付けます。スクリーンショットを原寸大で開く。

始める前に

ダウンロード元のサーバーでファイルが変更されましたは終了した状態として扱ってください。dosyaは部分オブジェクトを片付け、2つのリビジョンのバイトを混ぜて転送を続けることはありません。

署名付きURLでも、提供元が同じアドレスの内容を再生成すると、内容が変わる可能性があります。変更されないバージョンのURLか、転送中ずっと内容が変わらない新しいエクスポートを選んでください。

手順

  1. 失敗した行のファイル名、予定された合計、進捗を記録し、転送元を確認する間は行を表示したままにします。
  2. dosyaのジョブ開始後にオブジェクトが置き換えられた、再生成された、切り詰められたか、またはまだアップロード中だったかを転送元の所有者に確認します。
  3. 転送元ファイルの作成を完了し、変更されるエンドポイントを再利用せず、最終バージョンに紐付いた新しい公開HTTPS URLを取得します。
  4. URLを非公開でテストし、2回のリクエストで報告される合計が変わらないことを確認します。範囲リクエストに対応する転送元は合計と強いETagを伴う206を返す必要があります。
  5. 意図したフォルダーに向けて新しいリモートダウンロードジョブを開始します。失敗した行には部分データから再開する操作はありません。
  6. 完了を確認し、保存されたバイト数を最終的な転送元と比較してから、終了した行のXで古い行を消します。
リモートの転送元ファイルが変わった場合の再試行に関する参考画面:dosyaのRemote Downloads概要ページ。
リモートの転送元ファイルが変わった場合の再試行に関する参考画面:dosyaのRemote Downloads概要ページ。スクリーンショットを原寸大で開く。

期待される結果

新しい転送はゼロバイトから始まり、1つの転送元リビジョンだけから全体が転送されます。変更されたジョブの部分データがdosyaのファイルになることはありません。

提供元が同じURLを継続的に書き換える場合は、完成したオブジェクトをローカルにダウンロードしてからdosyaでアップロードしてください。不安定なアドレスに新しいリモートジョブを送ると、同じエラーが再発することがあります。

関連ガイド

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

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

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

質問と回答

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

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

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

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

    やり直す前に結果を確認

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