Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Google Apps Scriptで画像をダウンロードしてGoogle Driveに保存する
// URLパーサーライブラリ
eval(UrlFetchApp.fetch('https://rawgit.com/medialize/URI.js/gh-pages/src/URI.js').getContentText());
/**
* A列に入力された画像URLリストを元に画像をダウンロードしてGoogle Driveに保存する
*/
function downloadImages() {
// 予め作っておいた画像フォルダの情報を取得
var folders = DriveApp.getFoldersByName("画像フォルダ");
if(false === folders.hasNext()) {
return;
}
var folder = folders.next();
// 現在開いているシートを取得
var sheet = SpreadsheetApp.getActiveSheet();
// 範囲はA列を指定
var range = sheet.getRange("A1:A");
// 画像URLが入力されている最後の行数を取得
var row = sheet.getLastRow();
for (i = 1; i <= row; i++) {
// シートから1行ずつ画像URLを取得
var url = range.getCell(i,1).getValue();
// ファイル名取得
var fileName = URI(url).filename();
// 画像データを取得
var response = UrlFetchApp.fetch(url);
var fileBlob = response.getBlob().setName(fileName);
// 取得した画像をGoogle Driveにアップロード
var file = DriveApp.createFile(fileBlob);
// ルートディレクトリに画像が保存されているので画像フォルダにコピー
file.makeCopy(file.getName(), folder);
// ルートディレクトリの画像を削除
file.setTrashed(true);
}
}
@c2104
Copy link

c2104 commented Jun 8, 2021

お手間でなければご確認と修正のご検討をお願いいたします。

https://gist.github.com/kurozumi/f26c6cc75be55e61e9daadfdf6108771#file-downloadimages-gs-L15
シートのセル指定は 0 ではなく 1 からでないとエラーになると思います。

https://gist.github.com/kurozumi/f26c6cc75be55e61e9daadfdf6108771#file-downloadimages-gs-L21
変数 fileName が定義されていないです。

@kurozumi
Copy link
Author

kurozumi commented Jun 9, 2021

@c2104

ありがとうございます。
修正しました。

@c2104
Copy link

c2104 commented Jun 9, 2021

ご対応ありがとうございました🙇
こちらのコードのおかげでやりたい作業がスムーズに対応でき、大感謝でした 🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment