ハマログ

株式会社イーツー・インフォの社員ブログ

Google Apps Scriptで、Googleドキュメントのバックアップ

こんにちは、かねこです。

はじめに

弊社では、Googleドライブを利用して、一部のドキュメントの共有・管理をおこなっています。

最近、悲しいかなファイル消失事件が発生してしまったのですが、「そういえば、定期バックアップとってなかった…」ということで、Google Apps Scriptを利用して、Googleドライブ→Googleドライブへのバックアップを設定しました。
忘れないようにメモ。

Google App Scriptとは

Googleの一部のアプリケーションを操作したりデータを取得したりできる、JavaScriptベースの言語です。
Calender, Drive, Gmailなどに対応しており、データの橋渡しやアプリケーション連携など、便利な機能がたくさんあります。

やりかた

Google Apps Scriptを作ります。

作成→スクリプト(スクリプトが存在しない場合はOthersを選択後、Google App Scriptを追加)

i00000031

コード書きます。仕様とかドキュメントはこのへん

function documentBackup(){
  // バックアップ先のルートフォルダ
  var backupRootFolder = DocsList.getFolder('バックアップ');
  // バックアップの格納先フォルダ
  var backupFolder = backupRootFolder.createFolder(
    'ドキュメント' + Utilities.formatDate(new Date(), 
    'JST', 'yyyy-MM-dd'))
  // バックアップ対象フォルダ
  var folder = DocsList.getFolder('ドキュメント');  
  // ファイル一覧の取得
  var files = folder.getFiles();

  for (var i in files) {
    // ファイルの複製
    var file = files[i].makeCopy();
    
    // 権限剥奪
    var editors = file.getEditors();
    for (var j in editors) {
      file.removeEditor(editors[j].getEmail())
    }
    
    // ファイル移動
    file.addToFolder(backupFolder) 
    // ルートには、ファイルいらない
    file.removeFromFolder(DocsList.getRootFolder())
  }
}

スクリプトを実行してみます。
関数を選択して、

i00000032

実行!

i00000033

フォルダが出来ました。

i00000034

ファイルも無事に出来ました。

i00000035

スケジュール実行

標準機能で、スケジュール実行もできます。
リソース→すべてのトリガー

i00000036

タイミングや時間、繰り返し頻度などを設定します。

i00000037

これで、定期的に自動実行するようになりました!

かねこ

CalendarDriveGmailGoogleウェブグーグルブラウザ

  kaneko tomo   2013年11月25日


関連記事

よく知られているプログラミングの命名法

システムを複数人で開発するときに、記法や単位を一定のルールで統一します。 これを…

Glassfish を Eclipse にserver登録して ClassNotFoundException が起こる

Glassfish を Eclipse にserver登録しました そのあと G…

Vim Racer

エディタ論争 エンジニア界隈でエディタと言えばしばしば論争の種になるほどだが私は…


← 前の投稿

次の投稿 →