現在、ユーザー向けのファイル/画像アップロード サービスを実装しています。s3 バケットにアップロードする前に、これらの画像を変換 (サイズ変更/最適化) したいと考えています。
現在行っていること: フロントエンドでマルチパート フォームを使用し (実際の実装はここでは関係ないと思います..)、バックエンドでmulter
andmulter-s3
パッケージを使用しています。
ここで、私の実装は重要な部分を取り除いています。
// SETUP
var multer = require('multer');
var s3 = require('multer-s3');
var storage = s3({
dirname: 'user/uploads',
bucket: auth.aws.s3.bucket,
secretAccessKey: auth.aws.s3.secretAccessKey,
accessKeyId: auth.aws.s3.accessKeyId,
region: auth.aws.s3.region,
filename: function (req, file, cb) {
cb(null, Date.now());
}
});
var upload = multer({storage: storage}).single('img');
// ROUTE
module.exports = Router()
.post('/', function (req, res, next) {
upload(req, res, function (err) {
if (err) {
return res.status(401).json({err: '...'});
}
return res.json({err:null,url: '..'});
});
});
やりたいこと: アップロードする前に画像を変換します。ここで multer/busboy を使用する必要があるのか、それとも NodeJS を使用するだけでよいのかはわかりません (したがって、NodeJS と Express にもタグを付けました)。
私の質問は、S3 バケットにアップロードする前に、どこでアップロードをインターセプトして変換できますか?