先日、ポメラのDM200を購入しました。
DM200には、「アップロード」という名のメール送信機能があります。これを使ってまずはDM200からOneDriveにファイルを登録します。そのために、IFTTTを使いました。
「Email」と「OneDrive」を組み合わせています。DM200のメールは、Subjectにファイル名が、本文にテキストが入りますのでそれに合わせて設定します。
さて、OneDriveに保存するだけならこれで終わりですが、さらに自宅にあるNASにもバックアップを取りたいと思います。今使っているNASはファイル共有機能のみなので、IFTTTを使ってGmailにファイルを送ってそのファイルをLinuxマシンで動かすシェルスクリプトでNASに保存します。
IFTTTはこんな感じです。
「OneDriveのフォルダに新しいファイルが作られたら、その情報をメールする」という感じです。今回は、ファイルはメールに添付されずにOneDriveの共有URLという形で情報が渡ります。
「IFTTTから送信されたメールを受信したら特定のラベルをつける」フィルタをGmailに設定しておきます。これは、Gmail APIでメールを取り出すときになるべく簡単な方法にするためです。
Gmail APIについては以下を参照しました。
developers.google.com
hacknote.jp
qiita.com
クライアントIDやトークンなどの取得方法は省略します。
あとは、以下のシェルスクリプトをLinuxマシンに置きました。
IFTTTでOneDriveにあるファイルの情報を書いたメールをGmail API経由で取得してローカルに保存するスクリプト · GitHub
「<<文字列>>」は各自の値に置き換えてください。このシェルスクリプトでは、Gmail APIを使用して取り出した情報を元にOneDriveからダウンロードしたファイルをローカルに保存します。保存先をマウントしたNASのフォルダにすれば完成です。OneDriveの共有リンクの有効時間などを考慮して、30分おきにcronでこのシェルスクリプトを呼び出します。
Linuxマシンの場合、cifs-utilsパッケージをインストールすれば「mount.cifs」が使えます。使い方はこのようなサイトの情報を参考にしてください。
qiita.com
これで、以下のようにテキストファイルが自動的に流れるようになります。
DM200-[IFTTT]->OneDrive-[IFTTT]->Gmail-[シェルスクリプト]->NAS
私の場合、1日に1回くらいしか書きませんのでシェルスクリプトもこれくらい単純化しています。DM200で書き終えたものを送信するだけでOneDriveとNASに自動的に格納されるのは楽です。