UNPKG

multer-s3-gcs

Version:

Amazon S3 and Google Cloud Storage parallel upload made easy

48 lines (42 loc) 1.32 kB
const express = require('express'); const multer = require('multer'); const StorageEngine = require('./storage_engine.js'); // buckets const AWSBucket = require('s3-bucket-toolkit'); const GCStorage = require('@google-cloud/storage'); const bucket = new AWSBucket({ accessKeyId: process.env.AWS_S3_KEY, secretAccessKey: process.env.AWS_S3_SECRET, region: 'us-east-1', bucketACL: 'private', bucketName: process.env.AWS_S3_BUCKET, pagingDelay: 5, // (optional) set a global delay in between s3 api calls, default: 500ms }); const gcs = GCStorage({ keyFilename: process.env.GCS_KEY_FILE, }); const gcsBucket = gcs.bucket(process.env.GCS_BUCKET); const app = express(); const upload = multer({ storage: StorageEngine({ awsBucket: bucket, gcsBucket: gcsBucket, destination: function (req, file, cb) { cb(null, './uploads/' + file.originalname) } }), // storage: multer.memoryStorage(), dest: './uploads' }); app.get('/', function(req, res) { res.send('It\'s alive!'); }) app.post('/upload-here', upload.array('files'), function (req, res, next) { // req.body contains the text fields console.log('Upload success'); res.send(200); }); app.set('port', process.env.PORT || 3000); app.listen(process.env.PORT || 3000, function() { console.log('Server started'); });