GASでZip圧縮&解凍
GAS実践でZip圧縮を行う方法
Google Apps Script(GAS)を使って、複数のファイルを一括でZip圧縮する実践的な手順を紹介します。まずは、対象ファイルを取得し、Utilities.zipメソッドでバイナリデータを生成します。以下のサンプルコードは、指定フォルダ内の全てのテキストファイルをZipにまとめ、Google Driveにアップロードする流れです。
function zipFolder() {
const folder = DriveApp.getFolderById('フォルダID');
const files = folder.getFiles();
const zip = Utilities.zip(files, 'archive.zip');
DriveApp.createFile(zip);
}
このスクリプトを実行すると、archive.zipがDriveに作成され、後でダウンロードやバックアップに利用できます。GAS実践のポイントは、Utilities.zipがFileIteratorを受け取るため、ファイル数が多い場合でもメモリ効率が良い点です。
Utilities.zipでファイル圧縮・解凍を行う
Utilities.zipは圧縮だけでなく、解凍(unzip)もサポートしています。圧縮したZipファイルを再度展開し、個別のファイルを取得する例を示します。解凍はUtilities.unzipメソッドを使用し、バイナリデータをBlobに変換してDriveに保存します。
function unzipFile() {
const zipFile = DriveApp.getFileById('ZIPファイルID');
const blobs = Utilities.unzip(zipFile.getBlob());
blobs.forEach(blob => {
DriveApp.createFile(blob);
});
}
この手順で、Zip圧縮したアーカイブを簡単に解凍し、個別ファイルを再利用できます。特にバックアップからの復元時に便利です。
複数ファイルのダウンロードとバックアップ
複数ファイルを一括でダウンロードし、Zip圧縮してバックアップするワークフローを構築します。まずは外部APIから複数のファイルを取得し、Blobとしてメモリに保持します。次にUtilities.zipでまとめ、Driveに保存します。最後に、必要に応じてGoogle Driveの共有リンクを生成し、チームで共有します。
- 外部APIからファイル取得(例:Google Drive API、Dropbox API)
- Blob配列を作成し、
Utilities.zipで圧縮 - Driveにアップロードし、共有リンクを取得
- 定期的にスクリプトをトリガーして自動バックアップ
このプロセスをGASで自動化することで、手動でのダウンロードや圧縮作業を省き、ミスを減らせます。バックアップは定期的に行うことで、データ損失リスクを最小限に抑えることができます。
コメント
コメントを投稿