Contents
Google Driveの自動バックアップの重要性とスクリプト導入の意義
Google Driveはクラウドストレージとして広く利用されていますが、誤操作やシステム障害によってデータを失うリスクは常に存在します。特に小規模事業者では、重要なファイルや顧客情報の管理が業務の命綱となるため、自動バックアップの導入は必須です。Google Apps Script(GAS)を活用すれば、カスタマイズ可能なスクリプトで自動化が可能となり、手作業にかかる時間とミスの可能性を大幅に削減できます。この記事では、GASによるスクリプト実装手順とノウハウを技術的な視点から解説します。
Google Apps Scriptプロジェクトの作成方法
Google Driveで自動バックアップを開始するには、まずスクリプトプロジェクトを作成する必要があります。
ステップ1: スクリプトエディタにアクセス
- Google Driveを開き、「新規」→「その他」→「スクリプト」を選択します。
- 新しいスクリプトプロジェクトが作成され、編集画面(スクリプトエディタ)に移動します。
ステップ2: プロジェクトの初期設定
- ソースコードを直接入力するか、Web上のサンプルコードをコピーして貼り付けます。
- 設定項目(例:スクリプトの実行権限)は後述しますが、プロジェクト作成時点では特に変更が必要ありません。
注意点: スクリプト実行には「Googleアカウントの認証」が必要です。初めて使用する際は「スクリプトの実行を許可する」ポップアップに従ってください。
ファイルコピー処理のスクリプト記述例(file.makeCopy()関数使用)
GASでファイルを複製するには、makeCopy()関数を使用します。以下は基本的な構文とエラー対応の例です。
基本構文
|
1 2 3 |
const sourceFile = DriveApp.getFileById("ファイルID"); const copiedFile = sourceFile.makeCopy("コピー名", targetFolder); |
targetFolderは、バックアップ先となるフォルダを指定します(後述の「バックアップ対象フォルダの指定ロジック」参照)。- エラー処理として、ファイルが存在しない場合やアクセス権がない場合に例外をキャッチするコードを追加します。
サンプルスクリプト(一部抜粋)
|
1 2 3 4 5 6 7 8 |
try { const sourceFile = DriveApp.getFileById("1aBcD"); const targetFolder = DriveApp.getFolderById("2xYzW"); const copiedFile = sourceFile.makeCopy(`Backup_${new Date().toISOString()}`, targetFolder); } catch (e) { Logger.log("エラー発生: " + e.toString()); } |
改善点: 変数名を
newFileからcopiedFileに変更し、命名規則の統一を図っています。
日付自動付与機能の実装方法(Utilities.formatDate()活用)
バックアップファイルに日付を自動で追加するには、Utilities.formatDate()関数を使います。
実装手順
- 現在時刻を取得 →
new Date() - 指定されたフォーマットで変換 →
Utilities.formatDate(date, "Asia/Tokyo", "yyyy-MM-dd_HHmmss")
サンプルコード(ファイル名生成部分)
|
1 2 3 4 |
const now = new Date(); const formattedDate = Utilities.formatDate(now, "Asia/Tokyo", "yyyy-MM-dd_HHmmss"); const backupFileName = `Backup_${formattedDate}`; |
- タイムゾーン指定は、
"Asia/Tokyo"のように地域に応じて変更可能です。国際的な対応を想定する場合、"Europe/London"や"America/New_York"などのIANAタイムゾーン名を使用してください。 - バージョン管理で役立つこの処理を組み込むことで、複数回のバックアップファイルを一覧化しやすくなります。
バックアップ対象フォルダの指定ロジック
スクリプト内で動的にフォルダを指定するには、Folder.search()やgetChildren()を活用します。
1つのフォルダのみ処理する場合
|
1 2 3 |
const targetFolder = DriveApp.getFolderById("12345"); const files = targetFolder.getFiles(); |
複数フォルダを同時に処理する場合(例)
|
1 2 3 4 5 6 7 |
const folderIds = ["1aBcD", "2xYzW"]; folderIds.forEach(folderId => { const folder = DriveApp.getFolderById(folderId); const files = folder.getFiles(); // ファイルコピー処理を実行 }); |
補足: フォルダIDは、DriveのURLから取得またはDrive API経由で確認します。
無料ツールと自作スクリプトの比較検討
市販ツールや無料サービスと自作スクリプトを比較すると、以下のような違いがあります。
| 項目 | 無料ツール | 自作スクリプト(GAS) |
|---|---|---|
| カスタマイズ性 | 限定的 | 高(任意の処理を追加可能) |
| コスト | 無料 or 有料 | 完全無料 |
| スケーラビリティ | ファイル数制限があるケースあり | 自社環境に応じて拡張可能 |
- 無料ツールは手軽ですが、特定のビジネスニーズ(例:複数フォルダの差分バックアップ)には対応できない場合があります。
- スクリプトであれば、日付タグ付けやメール通知など、独自機能を追加できます。
権限設定とセキュリティ注意点
スクリプトはGoogleアカウントの認証が必要ですが、以下の設定で安全に運用してください。
1. APIアクセス時の認証フロー
- スクリプト実行時に「認証を許可する」というポップアップが表示されます。
- 管理者アカウントでのみスクリプトを実行可能にするには、Google Workspace管理コンソールでスクリプトの実行権限を制限します。
2. 不要なスクリプト実行の防止
- スクリプトエディタで「スクリプトの実行権限」を「このアカウントでのみ許可する」に設定します。
- OAuth 2.0の範囲(scopes)を最小限に抑えることで、不要なアクセスを防止します。
- セキュリティ監査ログ(
Logger.log()で出力)を定期的に確認し、異常アクセスを検知してください。
まとめ
本記事では、Google Driveの自動バックアップ実装における以下のポイントを解説しました:
- Google Apps Scriptプロジェクトの作成手順
makeCopy()によるファイルコピー処理と日付タグ付け機能- フォルダ指定ロジックや無料ツールとの比較検討
- スクリプト実行時のセキュリティ設定
読者の方は、以下のステップでスクリプト導入を検討してください。
- Google Drive内でスクリプトプロジェクトを作成
- ファイルコピー処理と日付自動追加のスクリプトを組み合わせる
- バックアップ対象フォルダを動的に指定するロジックを実装
- セキュリティ設定を確認し、不正アクセスを防ぐ
記事を参考にスクリプトを作成し、貴社のGoogle Driveデータを即日自動化バックアップへ。