ハマログ

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

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日


関連記事

Laravelのartisanの自作

こんにちは、かねこです。 あたまのいいチャラ男になりたいですが、頭はなかなか良く…

Google for Nonprofits発表

本日、Google for Nonprofitsプログラム(非営利団体向けプログ…

NetBeans IDE8.0でファイルの改行コードを指定するの巻

NetBeansはデフォルトでは改行コードの表示されないし、変更もできません。 …


← 前の投稿

次の投稿 →