Microsoft Power Automate(Microsoft Flow)を利用してGoogleDriveのデータをOneDriveにバックアップする

Web連携サービスを使ってみる

いつの間にかMicrosoft Flowに機能が追加されMicrosoft Power Automateという名称に変わったようですね。今回はそのMicrosoft Power Automateを利用してGoogleDrive上にあるデータをOneDriveにバックアップしようと思います。

Advertisement

GoogleDriveにしか無いデータをバックアップしたい

私は基本的にファイルを多重にバックアップしている人間なので何かあったとしても大抵の場合は復旧できるのですが、GoogleDrive上でクラウド利用しているメモ類などのバックアップはされていません。

そこでバックアップしようと思ったのですが、毎日数回更新されるファイルなので手動バックアップは現実的ではありませんし、今ローカルと同期しているGoogleアカウントとは別のアカウントにあるデータでローカルに同期するのもなんとなく嫌なので、Microsoft Power Automateを利用してOneDriveにバックアップしようというわけです。

Google形式のOfficeデータはMicrosoft形式に変換必須

Google形式のOfficeデータはMicrosoft Power Automateを利用して取得できないためバックアップが出来ません。

(複数の環境で利用するのならば)GoogleDriveでのOfficeデータはGoogle形式ではなくMicrosoft形式がおすすめ

この記事を参考にGoogle形式からMicrosoft形式のOfficeデータに変換し、アップロードし直して下さい。

フローを作る

ということでMicrosoft Power AutomateでGoogleDriveからOneDriveにバックアップするためのフローを作成します。

作成→自動化されたフローを選んでスキップして下さい。

3時間毎に実行させるためにスケジュールを利用する

GoogleDriveのバックアップ対象ファイルが更新された時に自動で実行されるのが一番良いのですが、不可能っぽいのでスケジュールを利用して定期実行させます。

Microsoft Power AutomateのFreeプランは月間の実行可能回数が750回なので、このフローのみを利用する場合は1時間ごとに実行できそうですが、そこまでは求めていないのでなんとなく3時間にしました。

組み込みからスケジュール、繰り返しを選択してください。
間隔を3時間に設定すれば3時間ごとに実行されるようになります。

GoogleDriveのフォルダー内のファイルリストを取得する

今回私はGoogleDrive上の特定フォルダー内のデータをすべてバックアップさせるのでそのフォルダー内のファイルリストを取得します。

新しいステップから”Google”とアクションを検索し、Google Driveを選択、フォルダー内のファイルのリストを選択してください。

Googleアカウントにログインしていない場合はログインしてください。

フォルダーIDは右側のピッカーからバックアップしたいフォルダーを選択します。

ファイルコンテンツを取得する

先程のファイルリストを元にファイルを取得します。

新しいステップから”Google”とアクションを検索し、Google Driveを選択、パスによるファイルコンテンツの取得を選択してください。

ファイルパスはフォルダー内のファイルのリストからPathを選びます。

OneDriveにコピー

ファイルコンテンツを取得したのでそのファイルをOneDriveにコピーします。

アクションの追加から”OneDrive”とアクションを検索し、OneDriveを選択、ファイルの作成を選択します。

OneDriveにログインしていない場合はログインしてください。

フォルダーのパスはバックアップ先のフォルダー、ファイル名はフォルダー内のファイルのリストからDisplayName、ファイルコンテンツはパスによるファイル コンテンツの取得からファイルコンテンツを選択します。

あとは保存して実行し動作すればOKです。

Advertisement

これで今までGoogleDriveにしか存在していなかったわりと重要なメモ類がバックアップされるようになりました。

今回の方法はファイルの中身をまるごと書き換えているような処理になっているような気がしますし、実行にもそこそこ時間がかかるのであまりよろしいフローじゃない気はしますが、面倒なのでとりあえずこれでOKとします。

なお、できるだけ無駄な処理をさせたくない場合はifを使ってGoogleDrive上のファイルとOneDrive上のファイルでファイルサイズなどを比較させれば上書きの必要が無いファイルをスキップさせることもできると思います。