#やりたいこと
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する場合はエンコードが必要