#背景
node.jsでaws-sdkを利用してファイルのアップロードしようと思ったけど古い記事が多かったのでまとめさせていただきます。
正規なやつは下記を参照…
http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html
#最初に
下記の項目は飛ばさせていただきます…
- node.jsやらnpmやらのインストール
- awsのアカウント作成
- awsのs3のバケット作成
#やり方
##aws-sdkのインストール
npm init
npm install --save aws-sdk fs
##アクセスキーの取得
AWSの画面の右上の方の「アカウント名」をクリック>「セキュリティ認証情報」を選択
アクセスキーの項目で「新しいアクセスキーの作成」をクリックして作成
下記のようなファイルがダウンロード出来ます。
rootkey.csv
AWSAccessKeyId=xxxxxxxxxxxxxxxxxxxx
AWSSecretKey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
これをこんな感じで変更して拡張子をjsonに変更
rootkey.json
{"accessKeyId": "xxxxxxxxxxxxxxxxxxxx",
"secretAccessKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}
##コーディング
上記のファイルをプロジェクトファイルに移動して…
index.js
var AWS = require('aws-sdk');
var fs = require('fs');
AWS.config.loadFromPath('./rootkey.json');
AWS.config.update({region: 'リージョン名'});
var s3 = new AWS.S3();
var params = {
Bucket: "バケット名",
Key: "アップロード後のファイル名.jpg"
};
var v= fs.readFileSync("./アップロード対象ファイル名.jpg");
params.Body=v;
s3.putObject(params, function(err, data) {
if (err) console.log(err, err.stack);
else console.log(data);
});