NetDriveのバックグラウンドアップロード — 非同期モードと同期モードの違い
NetDriveはドライブへの書き込みをブロックしないよう、ファイルをバックグラウンドでアップロードします。非同期モードと同期モードの違い、そして切り替えるべきタイミングを解説します。
動画編集者がマウントされたS3バケットに40GBの生素材をドラッグ&ドロップしたとき、期待するのはコピーダイアログが数秒で閉じることであり、実際のアップロードにかかる時間だけ開いたままになることではない。一方、マウントされたバケットにビルド成果物を書き込むCIスクリプトが求めるのはその逆で、次のジョブを起動する前にファイルが本当に転送先に到達したことを確認したい。NetDriveはどちらのケースも同じ設定で扱う。それがバックグラウンドアップロードであり、非同期モードと同期モードから選択できる。

作業をブロックしないアップロード
NetDrive を使えば Google Drive、OneDrive、S3、SFTP、WebDAV などが Windows と macOS でネイティブドライブとして表示されます — 同期も、まるごとダウンロードも不要です。
- バックグラウンドアップロードは、NetDriveの最初の3.xリリースから搭載されている
- ドライブごとに非同期モードと同期モードを選択できる
- 対応するすべてのプロバイダーで同じ挙動を実現
無料トライアル。永久ライセンスとサブスクリプションプランあり。
マウントされたドライブにファイルをドロップすると何が起こるか
NetDriveでマウントしたフォルダへの書き込みは、最終的にはすべてクラウド側のプロバイダーに到達しなければならない。しかしその転送は、ExplorerやFinderがコピー操作の完了を待っている間に行われる必要はない。転送をキューに入れ、ファイル操作をすぐに制御へ戻すバックグラウンドアップロードは、2017年9月の最初の3.xリリース以来、それを制御する非同期/同期モードの選択とともにNetDriveの一部となっている。
この仕組みがなければ、大量のファイルをマウントされたドライブにコピーする際、転送が完了するまでファイルマネージャーが完全にロックされてしまう。この仕組みがあれば、コピーダイアログはほぼ即座に完了し、実際のアップロードは独自のキューの中で継続され、その後に行う操作とは別に確認できる。

非同期アップロードモードと同期アップロードモード
NetDriveはこの挙動を、ドライブごとに設定できる2つのオプションとして公開している。
| モード | 動作 | 適した用途 |
|---|---|---|
| 非同期(デフォルト) | 書き込み操作はすぐに戻り、ファイルはバックグラウンドキューからアップロードが完了する | 日常的なドラッグ&ドロップ、大量のバッチ、ExplorerやFinderをハングさせたくない場面全般 |
| 同期 | 書き込み操作は、実際にアップロードが完了するまで戻らない | 次のステップを実行する前に、リモートにコピーが存在することを確実にしたいスクリプトや自動化処理 |
非同期モードがデフォルトになっているのには理由がある。マウントされたドライブの日常的な使い方の大半は、人がファイルをコピーしてそのまま作業を続けるというものであり、保証を必要とするプロセスではないからだ。同期モードはその応答性を犠牲にして確実性を得る。これは、手作業でファイルを編集する人よりも、無人のパイプラインにとってはるかに重要な意味を持つ。

ドライブのアップロードモードを切り替える
この設定は他のすべてのドライブ単位のオプションと同じ場所にあり、マウントされたドライブごとに異なるモードを同時に運用できる。たとえば、映像アーカイブは非同期のままにしつつ、CI向けのバケットは同期で運用するといったことも可能だ。
- NetDriveを開き、Drive Managerでドライブを見つけるか、Add Driveをクリックして新しい接続を設定する。
- ドライブの設定を開く — ドライブカードの歯車アイコンをクリックする。
- Upload Modeフィールドを見つけ、AsynchronousとSynchronousの間で切り替える。
- 変更を反映させるには、保存してドライブを再マウントする。

モードを切り替えても、接続そのものは何も変わらない。プロバイダー、認証情報、マウントポイントはそのまま維持される。変わるのは、アップロードが進行している間に書き込み操作がどう振る舞うかだけだ。
デフォルトを変更すべきタイミング
大量のバッチコピー。 数百個のファイルや、非常に大きなファイルをいくつかマウントされたドライブにドラッグする作業は、まさに非同期モードが想定している用途だ。転送にかかる時間の間、ファイルマネージャーがフリーズしたように見えることなく、応答性を保ち続けられる。
アップロードの完了に依存する自動化処理。 ビルドスクリプト、デプロイステップ、あるいはファイルを書き込んだ直後に下流のシステムがそれをクラウドから読み戻すことを期待するプロセスは、そのドライブを同期モードで運用すべきだ。そうしないと、リモート側のコピーが実際に完了する前にローカルの書き込みが成功を返してしまい、競合状態が発生する。
同一マシン上での混在ワークフロー。 この設定はグローバルではなくドライブごとに適用されるため、あるワークステーションで手動のファイル作業用に1つのドライブを非同期でマウントし、もう1つをスクリプトによる出力用に同期でマウントしても、両者の間で何も衝突は起きない。
まとめ
バックグラウンドアップロードは、実データがクラウド上にあってもNetDriveでマウントしたドライブがローカルフォルダのように感じられる理由そのものであり、非同期/同期の選択は「ローカルのように感じる」ことが実は望ましくない場面のために用意されている。もう一つ知っておく価値のあるドライブ単位の設定については、NetDriveのLocal Disk Modeを、ドライブのキャッシュ量の調整についてはNetDriveのキャッシュサイズオプションを参照してほしい。
— Robin, NetDrive