読者です 読者をやめる 読者になる 読者になる

技術のメモ帳

気が向いたときに書いてます

[GAS]Amazon S3にファイルをアップロードする

S3のCRUD操作は、S3ライブラリを利用すれば、手軽に実行できます。

ライブラリの詳細は、下記を参照してください。

Amazon S3 API Binding for Google Apps Script | Engineering | Etc

ライブラリのコードも公開されているので、教材としてもなかなか良さげです。

実装する関数

まず、ライブラリを登録します。[リソース]→[ライブラリ]から、MB4837UymyETXyn8cv3fNXZc9ncYTrHL9を登録します。

AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYは、[ファイル]→[プロジェクトのプロパティ]→[スクリプトのプロパティ]より、事前に登録しておきます(取扱い注意)。

function uploadS3() {
  var props     = PropertiesService.getScriptProperties(),
      accessKey = props.getProperty('AWS_ACCESS_KEY_ID'),
      secretKey = props.getProperty('AWS_SECRET_ACCESS_KEY'),
      s3        = S3.getInstance(accessKey, secretKey),
      blob      = UrlFetchApp.fetch("http://www.google.com").getBlob(),
      response  = s3.putObject("***YOUR_BUCKET_NAME***", "googlehome", blob, {logRequests:true});
  Logger.log(response);
}

殆どすべてライブラリ側で処理してくれるので、呼び出すだけです。

問題なく、アップロードできていました。

get/deleteの実装も簡単なので、もし興味があればお試しください。