(nodejs)上传multIpart时如何将S3和GCS一起上传

时间:2018-02-20 04:42:49

标签: node.js amazon-s3 google-cloud-storage

我正在创建一个可以上传s3和gcs的nodejs express程序。

在我的代码' / uploadAll'不起作用。

仅上传到s3而未上传到gcs。

我试过Google但却找不到它。

如何上传所有这些内容?

我期待您的回复......谢谢!

const express = require('express');
const bodyParser = require('body-parser');
const multer = require('multer');
const awsSDK = require('aws-sdk');
const s3 = new awsSDK.S3();
const multerS3 = require('multer-s3');
const multerGoogleStorage = require("multer-google-storage");
const app = express();

app.use(bodyParser.json());

const gcsMulter = multer({
    storage: multerGoogleStorage.storageEngine({
        keyFilename: '../key.json',
        bucket: 'test-bucket',
        projectId: 'TestProject',
        filename: function (req, file, cb) {
            cb(null, `test/_${file.originalname}`);
        }
    })
});

const s3Multer = multer({
    storage: multerS3({
        s3: s3,
        bucket: 'test-bucket',
        acl: 'public-read',
        key: function (req, file, cb) {
            cb(null, `test/_${file.originalname}`);
        }
    })
});

const s3Upload = s3Multer.fields([{
    name: 'images'
}, {
    name: 'thumbs'
}]);

const gcsUpload = gcsMulter.fields([{
    name: 'images'
}, {
    name: 'thumbs'
}]);

app.post('/uploadS3', s3Upload, (req, res, next) => {
    res.json(req.files);
});

app.post('/uploadGCS', gcsUpload, (req, res, next) => {
    res.json(req.files);
});

app.post('/uploadAll', s3Upload, gcsUpload, (req, res, next) => {
    res.json(req.files); 
});

const PORT = process.env.PORT || 8080;
app.listen(PORT, () => {
    console.log(`App listening on port ${PORT}`);
    console.log('Press Ctrl+C to quit.');
});

1 个答案:

答案 0 :(得分:1)

GCS目前不支持分段上传。