起きたこと
webアプリで5MBくらいのファイルをS3にアップロードしようとした時に
const uploadFile = fs.readFileSync("/hoge/hogehoge.zip");
const params = {
Bucket: "test_bucket",
Key: "hoge/hoge.zip",
Body: uploadFile
};
return S3Client.upload(params).promise();
って書いたらreadFileSyncに時間がかかりすぎてブラウザがタイムアウトを起こしてしまう問題が発生しました。
解決方法
stackoverflow様によると
const uploadFile = fs.createReadStream("/hoge/hogehoge.zip");
ってしたら一瞬でアップロードできてS3を確認するとファイルサイズは元のファイルサイズと同じで中身も同じでした!!