LoginSignup
1
0

More than 1 year has passed since last update.

Google Apps Scriptで、S3のファイルをGoogleDriveにダウンロードする

Posted at

はじめに

以前Google Apps Scriptを使い、S3のCSVをスプレッドシートに書き出す方法を記事にしました。

今回は、S3にあるファイルをGoogleDriveにダウンロードする方法になります。

参考

やったこと

AWS側

以下を作成します。

  • S3バケット
    • 対象のファイルを置く
  • IAMユーザ
    • 上記S3バケットへのGetObjectの権限あり
    • アクセスキーを取得する

手順は以前の記事と同じになります。

S3のバケットには以下の画像をtestfolder/アイコン画像.pngとして置きました。

アイコン画像.png

Google側

以下を行います。

  • Apps Script編集画面を開く
  • S3ライブラリの追加
  • スクリプト記述

こちらも、以前の記事の方法と同じになります。

コードは以下になります。各設定値にはそれぞれの値を代入ください。

コード.gs
function myFunction() {
  // 設定値
  //// AWSのアクセスキーの情報
  const accessKeyId = '';
  const secretAccessKey = '';

  //// S3のファイルの情報
  const bucketName = '';
  const objectName = encodeURI(''); // パスに全角文字があった場合のためにエンコード
  
  //// Google Drive上のフォルダID
  const folderId = '';

  // 処理
  //// S3インスタンスを作成
  var s3 = S3.getInstance(accessKeyId, secretAccessKey);
  //// ファイルを取得
  const data = s3.getObject(bucketName,objectName);

  //// 格納フォルダを指定
  var destfolder = DriveApp.getFolderById(folderId);
  /// フォルダ内にファイル作成
  destfolder.createFile(data);
}

フォルダIDとは

folderIdに代入するフォルダIDについて、URLの以下の画像の赤い部分が、フォルダIDになります。

image.png

詳細は以下を確認ください。

実行

実行すると、IDで指定したフォルダに、ファイルが作成されました。
image.png

おわりに

S3ライブラリにファイルをダウンロードする関数がなかったため、若干手間取りました。
わかってしまえばシートの操作がない分、以前よりかなり簡素な内容になりました。

本記事がどなたかの参考になれば幸いです。

1
0
0

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
1
0