【Express】 S3に画像をアップロード
9438 ワード
S3に画像をアップロードします。
本記事ではアップロードのみで、読み取りは行いません。
routes/images.js
require('dotenv').config();
const fs = require('fs');
const aws = require('aws-sdk');
const s3 = new aws.S3({ // dotenvで読み込む
accessKeyId: process.env.accessKeyId,
secretAccessKey: process.env.secretAccessKey,
region: process.env.region,
});
const multer = require('multer');
const multerS3 = require('multer-s3');
// multer-s3の公式を参照(下記)
const upload = multer({
storage: multerS3({
s3: s3,
bucket: 'node-image-app2',
metadata: function (req, file, cb) {
cb(null, {fieldName: file.fieldname});
},
key: function (req, file, cb) {
cb(null, Date.now().toString())
}
})
});
// Create images
// upload(...)で画像を登録。multer公式参照(下記)
router.post('/images/upload', upload.single('image'), (req, res, next) => {
if (req.file) {
console.log('Image uploaded!');
res.redirect('/images');
}
else {
console.log('Image can not uploaded!')
res.render('image.ejs');
}
})
accessKeyId='foo'
secretAccessKey='foo'
region='foo'
.env
ファイルを .gitignore
に必ず追加します。
Author And Source
この問題について(【Express】 S3に画像をアップロード ), 我々は、より多くの情報をここで見つけました https://zenn.dev/kazuma_soon/articles/59c6a8fff55b12著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol