Express アプリで multer-s3 を介して S3 にファイルをアップロードすると、途方もなく遅くなります (200kb には 10 秒かかり、レイテンシーはファイル サイズに比例します)。問題はmulter-s3ですが、ライブラリ内で何が起こっているかをさらにデバッグする方法を誰か教えてもらえますか? onFileUploadStart などを multer に渡すことはサポートされなくなりました。multer-s3が何をしているのか、どの段階でレイテンシーが発生しているのか、どのようにピークに達するのかわかりません。
CLIからのアップロードは超高速であるため、問題はAWS S3ではなく、ローカルディスクへのアップロードも高速であるため、マルチターではありません. 直接の S3 JavaScript 操作も、意図したとおりに高速に動作します。
multer のコンテンツ自動タイプ機能をオフにしようとしましたが、あまり効果がありませんでした。
var upload = multer({
storage: multerS3({
s3: s3,
bucket: bucketName,
acl: 'public-read',
contentType: multerS3.AUTO_CONTENT_TYPE,
metadata: function (req, file, cb) {
cb(null, {fieldName: file.fieldname});
},
key: function (req, file, cb) {
cb(null, Date.now().toString() + "-" + file.originalname);
}
},)
})
router.post('/', upload.array('files'), function(req, res, next) {
console.log('Successfully uploaded ' + req.files.length + ' files!');
});
Want to have sub-second latency as I do with direct AWS CLI upload or using multer to store to local disk, takes 10 seconds to minute or more on sub-MB files.