【備忘録】ファイルの更新日時を維持したまま、オンラインストレージに預けたり取り出したりしたい!
発端
PCに存在するデータを
「外付けHDDとか、USBメモリとかにファイルをコピーして、バックアップとする」
みたいなことしますよね? 私はします。
で、このとき、コピーを繰り返してもファイルの更新日時は保持されるので、たとえば15年前に描いた絵とかを新しいPCに持ってきたとしても、それを描いたのがいつなのか分かるし、更新日時でソートすることもできる。
それはそれとして、オンラインストレージ(クラウドストレージ)もバックアップに使う。
でも、オンラインストレージに置いたファイルをダウンロードしたとき、どうしてか更新日時が保持されない、具体的に言うとダウンロードした日時に変わっちゃう…という悩みがありました。
オンラインストレージにファイルを置きたい。でも、オリジナルの更新日時もキープしたい。そういう自分のためのメモです。
作成日時は気にしないの?
作成日時は今回気にしません。
なぜなら、作成日時を保持したままファイルをコピーする方法は、おそらく存在しないと思うからです。私が知らないだけかもしれませんが。
(コピーしたのち、PowerShellのコマンドで作成日時を書き換えることはできます。が、今回はそういう話ではないので割愛)
先に結論
私が普段使用しているのがDropboxとGoogleドライブなので、その2つについて調べました。自分用なので。OneDriveとかは知りません。
ちなみにPCはWindows11です。
結論から言うと、DropboxとGoogleドライブでは、更新日時を保持することは可能でした。ただし手順によってできたりできなかったりします。それを以下に書きます:
Dropbox
ローカルのファイルを、クライアントの同期を利用してサーバーにアップロードすれば、更新日時を保持したままアップロードできる。
ダウンロードする際も、クライアントを利用して同期すれば、更新日時を保持できる。
アップロードとダウンロード、どちらか一方でもwebブラウザを介したらアウト。両方ともクライアントの同期で行う必要がある。
Googleドライブ
ローカルのファイルをサーバーにアップロードする際は、方法は問わない。クライアントの同期でもいいし、webブラウザ上で操作してもいい。どちらの方法でも更新日時は保持される。
ダウンロードする際は、クライアントを利用して同期すれば、更新日時が保持されるが、webブラウザからダウンロードするとダメ。
アップロードはなんでもいいが、ダウンロードは必ずクライアントの同期で行うこと。
行った操作とか、細かい補足
Dropbox
手順1
ローカルフォルダのファイルを、クライアントの同期を利用してアップロードする
↓
サーバー上のファイルを見ると、元の更新日時が保持されている
手順2
ローカルフォルダのファイルを、webブラウザ経由でアップロードする
↓
サーバー上のファイルを見ると、更新日時にはアップロード日時が入っている
手順3
サーバー上のファイルを、クライアントの同期を利用してダウンロードする
↓
ダウンロードされたファイルを見ると、サーバー上のファイルと同じ更新日時である
手順4
サーバー上のファイルを、webブラウザ経由でダウンロードする
↓
ダウンロードされたファイルを見ると、更新日時にはダウンロード日時が入っている
手順1と手順3を組み合わせれば、オリジナルの更新日時が保持できる。
Googleドライブ
手順1
ローカルフォルダのファイルを、クライアントの同期を利用してアップロードする
↓
サーバー上のファイルを見ると、「最終更新」に元の更新日が保持されている(時分は非表示)
手順2
ローカルフォルダのファイルを、webブラウザ経由でアップロードする
↓
サーバー上のファイルを見ると、「最終更新」に元の更新日が保持されている(時分は非表示)
手順3
サーバー上のファイルを、クライアントの同期を利用してダウンロードする
↓
ダウンロードされたファイルを見ると、サーバー上のファイルの「最終更新」と同じ更新日である。サーバー上では時分は非表示なので、念のためにサーバーにアップロードする前のオリジナルと比較したところ、元の更新日時を保持できていた
手順4
サーバー上のファイルを、webブラウザ経由でダウンロードする
↓
ダウンロードされたファイルを見ると、更新日時にはダウンロード日時が入っている
アップロード時は手順1でも2でも同じ。
ダウンロード時に手順3を行えば、オリジナルの更新日時が保持できる。
その他、おまけ
レンタルサーバー
私は令和になっても個人サイトを続けている民なので、レンタルサーバー(スペース)を契約しています。
このレンタルサーバーに対し、FTPクライアント経由でアップロードすると、サーバー上のファイルの更新日時はアップロード日時になる。
また、サーバー上のファイルをFTPクライアント経由でダウンロードすると、ローカルのファイルの更新日時はダウンロード日時になる。
つまりFTPでアップロード・ダウンロードすると更新日時は保持されません。
まぁこれは前から知ってたけど。
NAS
実はNASも持ってます。
活用するしない以前に、いろいろ試してみてお勉強している段階なのですが…
で、NAS(BUFFALO製品)に対しても試してみたんですけど、
エクスプローラーでのコピー、またはバッチやコマンドでのコピーであれば、更新日時は保持されました。
webブラウザからアクセスする機能(NAS Navigator2を起動して、「Web設定画面」をクリックしたやつ)(語彙力)を使ってコピーするとダメでした。
ただね、そもそもNASって設置場所が自宅なので、PCがやられるような災害があったら、結局一緒にやられるんですよね。
データを保存する際の「3-2-1ルール」の最後の「1」、「バックアップデータの1つは物理的に離れた遠隔地(オフサイト)に保管する」ってやつ。これを考えると、やっぱりオンラインストレージに保管しておきたいわけです。
私の場合、
メインPC
外付けHDD(普段はどことも接続しない)
オンラインストレージ
のそれぞれにデータを保存すると、いい感じになりそうです。
…あれ? NAS、要らなくね…??
ついでにググったこととか
いろいろググってたときに出てきた情報で、
「WebDAVプロトコルには、ローカルファイルの更新日時を保持するための機能がない」
というのがあったんですけど、「じゃあそのWebDAVプロトコルを使っているシステムって具体的にはどれなの?」とかが全然分からなかったので分かりませんでした。かなしい。
あと、FTPですが、FTPでタイムスタンプを保持すること自体は可能らしいです。ただそのやり方(MFMTコマンドがどうとか、SFTPを利用すればいいとか)とかは、正直今回は必要なさそうだったし、まぁいいやと思って読むの諦めました。だるい。
雑なまとめ
オンラインストレージで、元のファイルの更新日時を保持したかったら、クライアントの同期機能を使え。
以上です。
この記事が気に入ったらサポートをしてみませんか?