Node.jsでAWS S3(amazon S3)を用いてプロジェクトファイルにブラウザからファイルを保存する方法
解決したいこと
初めまして。
Node.jsを用いてブラウザからアップロードしたファイルをプロジェクトファイルに保存するウェブアプリケーションの作成をしたいと考えております。
multerとfsを利用し、ローカル環境でのテストは無事成功したのですがHeorkuにアップロードしたところ動きませんでした。
なぜかと調べてみるとどうやらherokuでファイルアップロードするのはよくないようです。(できるけど一時ファイルの作成のみ)
そこでいろいろと調べていたところAWS S3というサービスを利用するといいと聞いたので調べてみたのですが出てくる情報がAWS S3のストレージ(?)にアップロードするというものばかりでした。
どうしてもプロジェクトファイルに保存しなければいけないのですが、AWS S3を用いてやる場合どういう風に作成すればいいのでしょうか。
何か参考になるサイトや方法をご存じの方いましたらご教授お願いいたします。
以下コードです。
該当するソースコード
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, "./tmp")
},
filename: function (req, file, cb) {
cb(null, file.originalname)
}
})
const upload = multer({ storage: storage })
app.use(express.static(path.join(__dirname,)));
app.get('/upload1', (req, res) =>{
res.render('upload1.ejs');
});
app.post('/upload', upload.single('file'), function (req, res, next) {
res.send('ファイルのアップロードが完了しました。');
})
<!DOCTYPE html>
<html lang="ja"></html>
<head>
<meta charset="UTF-8">
<title>Express.js File Upload</title>
</head>
<body>
<h1>ファイルアップロード</h1>
<form action="/upload" method="POST" enctype="multipart/form-data">
<input type="file" name="file">
<button type="submit">送信</button>
</form>
</body>
</html>