LoginSignup
8
8

More than 5 years have passed since last update.

【GAS】S3からファイルを取得してspreadsheetに書き出す

Last updated at Posted at 2018-10-30

やりたいこと

GASにてS3のファイルをGETしてspreadsheetに書き出す。
(PUTに関しては情報が多かったが、GETはあまり情報が無く戸惑ったので忘備録に)

前提条件

S3操作のライブラリが設定されていること
ライブラリキー:MB4837UymyETXyn8cv3fNXZc9ncYTrHL9
ライブラリ詳細:https://engetc.com/projects/amazon-s3-api-binding-for-google-apps-script/

コード

// S3からファイルを取得して指定のドライブに保存
function getS3File() {
  // S3の接続情報
  var awsAccessKeyId = ""
  var awsSecretKey = ""
  var s3baket = ""
  var s3File = ""

  //グーグルのドライブの保存先フォルダID
  var folderId = ""

  // S3に接続してファイルをGET
  var s3 = S3.getInstance(awsAccessKeyId, awsSecretKey); 
  var fromS3 = s3.getObject(s3baket, s3File);

  // GETしたファイルをドライブに保存
  var destfolder = DriveApp.getFolderById(folderId );
  var file = destfolder.createFile(fromS3);
  dataImport(file);
}

// TSVファイルのシートへの書き出し
function dataImport( file ) {
  var data = file.getBlob().getDataAsString("utf8");
  var newDataList = Utilities.parseCsv(data, '\t'); // 第二引数で区切り文字(タブ)を設定

  //書き込む対象のSpread Sheetを定義
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = ss.getActiveSheet();
 var lastRow = sh.getDataRange().getLastRow();

  // データの出力
  sh.getRange(1, 1, newDataList.length, newDataList[0].length).setValues(newDataList);
}

注意点

日本語名のファイルをGETする場合はエンコードが必要

8
8
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8