JavaScript
S3

AWS SDK for JavaScriptを使ってS3にファイルをアップロードする方法

More than 1 year has passed since last update.

SDK version


"aws-sdk": "^2.114.0"

S3のアップ場所とファイル名


/hoge/in/fuga/aaa1/08/15/myKey1.txt
/hoge/in/fuga/aaa1/08/15/myKey2.txt

コード


var AWS = require('aws-sdk')

AWS.config.update({
  accessKeyId: 'accessKeyId',
  secretAccessKey: 'secretAccessKey',
  endpoint: 'https://hoge.s3-ap-northeast-1.amazonaws.com/in/fuga',
  s3ForcePathStyle: true
})

var s3 = new AWS.S3()

var params1 = {
  Bucket: 'aaa1',
  Key: '08/15/myKey1.txt',
  Body: 'Hello!',
  ContentType: 'text/plain'
}

var params2 = {
  Bucket: 'aaa1',
  Key: '08/15/myKey2.txt',
  Body: 'World!',
  ContentType: 'text/plain'
}

s3.upload(params1, function (err, result) {
  console.log(err, result)
  s3.upload(params2, function (err, result) {
    console.log(err, result)
  })
})

まったく同じ場所に置くのであれば、endpointとかBucketで指定すればファイル名だけで良いです。

CloudBerry Explorerを使えば、FTPソフトのような形でS3を確認できます。アクセスキーとか、シークレットキーの権限も含めた動作確認とかも出来るので、合わせて使ってみると良いかもしれません。

なぜか、2回目のアップロードがAccess Deniedで失敗するという謎のエラーで、めっちゃハマったので、共有という意味でうまくいったコードをアップしました。