スキップしてメイン コンテンツに移動

GASでZip圧縮&解凍

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.zipFileIteratorを受け取るため、ファイル数が多い場合でもメモリ効率が良い点です。

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で自動化することで、手動でのダウンロードや圧縮作業を省き、ミスを減らせます。バックアップは定期的に行うことで、データ損失リスクを最小限に抑えることができます。

この記事はAIによって作成されました。

コメント