GASを使ってドライブ内の画像を簡単に取得する方法

GASってドライブの中にある画像を簡単に取得できるって聞いたけど、本当なんだろうか…?どうやって始めればいいのか全然わからないよ…
猫男
猫男
catman
catman
その悩み、catmanが解決しよう。GASを使えば、Googleドライブ内の画像をサクッと取得できるのさ。

 

GASでGoogleドライブ内の画像を取得する方法

GASで画像をドライブから取得するための基本コードを紹介しよう。


function getImageInfoByFileId() {
  const fileId = 'YOUR_IMAGE_FILE_ID_HERE';  // ← 実際の画像ファイルIDに置き換えてください
  const file = DriveApp.getFileById(fileId);
  const mimeType = file.getMimeType();

  // JPEG or PNG の画像のみ処理
  if (mimeType === MimeType.JPEG || mimeType === MimeType.PNG) {
    Logger.log('ファイル名: ' + file.getName());
    Logger.log('ファイルID: ' + file.getId());
    Logger.log('ファイルURL: ' + file.getUrl());
    Logger.log('MIMEタイプ: ' + mimeType);
    Logger.log('サイズ: ' + file.getSize() + ' bytes');
    Logger.log('作成日時: ' + file.getDateCreated());
    Logger.log('最終更新日時: ' + file.getLastUpdated());
    
    try {
      Logger.log('所有者: ' + file.getOwner().getEmailAddress());
    } catch (e) {
      Logger.log('所有者: 取得できません');
    }

    Logger.log('説明: ' + file.getDescription());
    Logger.log('共有設定: ' + file.getSharingAccess());
  } else {
    Logger.log('指定されたファイルはJPEGまたはPNGではありません。');
  }
}

このコードを使えば、特定のファイルIDを持つ画像(JPEGまたはPNG)を取得し、その詳細情報をログに出力できる。

DriveApp.getFileById(fileId)は画像のファイルIDを指定して画像を取得しているぞ。

たとえば、こんな感じのログが出力されるはずだ。

 

gas 画像取得

 

練習問題

以下の条件に従って、GASを用いてGoogleドライブ内のPNG画像を取得し、そのファイル名をコンソールに出力するスクリプトを書け。

  1. 特定のフォルダIDを使って、該当フォルダを選択すること。
  2. PNG画像のみを対象とすること。
  3. 取得した画像のファイル名をログに出力すること。

 

 

解答と解説

 function getPngImages() {
 const folderId = 'your-folder-id';
 const folder = DriveApp.getFolderById(folderId);
 const files = folder.getFilesByType(MimeType.PNG);

 while (files.hasNext()) {
 const file = files.next();
 Logger.log(file.getName());
 }
 } 

指定したフォルダIDを使って、フォルダを取得し、その中のPNGファイルのみを探し出す。

MimeType.PNGはPNGファイルのMIMEタイプを表し、getFilesByType()メソッドで指定したタイプのファイルを取得できる。