AWS S3 を Node.js で使ってみます。
1)バケットの一覧
s3_list.js
#! /usr/bin/node
//
// s3_list.js
//
// Mar/02/2020
// ---------------------------------------------------------------
var AWS = require('aws-sdk')
var s3 = new AWS.S3({apiVersion: '2006-03-01'})
s3.listBuckets(function(err, data) {
if (err) {
console.log("Error", err)
} else {
console.log("Success", data.Buckets)
}
})
// ---------------------------------------------------------------
2)バケット内のファイル一覧
s3_listobjects.js
#! /usr/bin/node
//
// s3_listobject.js
//
// Mar/02/2020
// ---------------------------------------------------------------
var AWS = require('aws-sdk')
var s3 = new AWS.S3({apiVersion: '2006-03-01'})
console.log(process.argv.length)
if (process.argv.length < 3)
{
console.error ("*** error ***")
process.exit(1)
}
const bucket_name=process.argv[2]
console.log (bucket_name)
var bucketParams = { Bucket : bucket_name, }
s3.listObjects(bucketParams, function(err, data) {
if (err) {
console.log("Error", err)
} else {
console.log("Success", data)
}
})
// ---------------------------------------------------------------
3)ファイルのアップロード
s3_upload.js
#! /usr/bin/node
//
// s3_upload.js
//
// Mar/02/2020
//
// ---------------------------------------------------------------
var AWS = require('aws-sdk');
var s3 = new AWS.S3({apiVersion: '2006-03-01'})
console.log(process.argv.length)
if (process.argv.length < 4)
{
console.error ("*** error ***")
process.exit(1)
}
const bucket_name = process.argv[2]
const file_name = process.argv[3]
console.log(bucket_name)
console.log(file_name)
var uploadParams = {Bucket: bucket_name, Key: '', Body: ''}
var fs = require('fs')
var fileStream = fs.createReadStream(file_name)
fileStream.on('error', function(err) {
console.log('File Error', err)
});
uploadParams.Body = fileStream
var path = require('path')
uploadParams.Key = path.basename(file_name)
s3.upload (uploadParams, function (err, data) {
if (err) {
console.log("Error", err)
} if (data) {
console.log("Upload Success", data.Location)
}
})
// ---------------------------------------------------------------
4)ファイルのダウンロード
s3_download.js
#! /usr/bin/node
//
// s3_download.js
//
// Mar/02/2020
// ---------------------------------------------------------------
var AWS = require('aws-sdk')
var s3 = new AWS.S3()
var fs = require("fs")
console.error ("*** 開始 ***")
console.log(process.argv.length)
if (process.argv.length < 4)
{
console.error ("*** error ***")
process.exit(1)
}
const bucket_name = process.argv[2]
const file_name = process.argv[3]
console.log(bucket_name)
console.log(file_name)
const params = {
Bucket: bucket_name,
Key: file_name
}
const file_out = file_name
s3.getObject(params, function(err, data) {
if (err) {
console.log(err, err.stack)
} else {
str_out = data.Body.toString()
fs.writeFile (file_out,str_out,function (err)
{
if (err) {
console.error ("Error on write: " + err)
}
else {
fs.chmodSync (file_out,0666)
console.log("File written.")
console.error ("*** 終了 ***")
}
})
}
})
// ---------------------------------------------------------------
5)ファイルの削除
s3_rm.js
#! /usr/bin/node
//
// ---------------------------------------------------------------
var AWS = require('aws-sdk');
var s3 = new AWS.S3({apiVersion: '2006-03-01'});
console.log(process.argv.length)
if (process.argv.length < 4)
{
console.error ("*** error ***")
process.exit(1)
}
const bucket_name = process.argv[2]
const file_name = process.argv[3]
console.error ("*** 開始 ***")
const params = {
Bucket: bucket_name,
Key: file_name
}
s3.deleteObject(params, function(err, data) {
if (err) {
console.log(err, err.stack)
} else {
console.log("Success", data)
}
console.error ("*** 終了 ***")
})
// ---------------------------------------------------------------
6)ファイルの作成
s3_put.js
#! /usr/bin/node
//
// s3_put.js
//
// Mar/02/2020
//
// ---------------------------------------------------------------
var AWS = require('aws-sdk');
var s3 = new AWS.S3({apiVersion: '2006-03-01'})
console.log(process.argv.length)
if (process.argv.length < 4)
{
console.error ("*** error ***")
process.exit(1)
}
const bucket_name = process.argv[2]
const file_name = process.argv[3]
console.log(bucket_name)
console.log(file_name)
var str_data = 'Good Morning\n'
str_data += 'Good Afternoon\n'
str_data += 'Good Evening\n'
str_data += 'Good Night\n'
var Params = {Bucket: bucket_name,
Key: file_name,
Body: str_data}
s3.putObject (Params, function (err, data) {
if (err) {
console.log("Error", err)
} if (data) {
console.log("Put Success", data)
}
})
// ---------------------------------------------------------------