3

現在、ユーザー向けのファイル/画像アップロード サービスを実装しています。s3 バケットにアップロードする前に、これらの画像を変換 (サイズ変更/最適化) したいと考えています。

現在行っていること: フロントエンドでマルチパート フォームを使用し (実際の実装はここでは関係ないと思います..)、バックエンドでmulterandmulter-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 バケットにアップロードする前に、どこでアップロードをインターセプトして変換できますか?

4

2 に答える 2