Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 我想上传扩展名为aws s3的文件,但它不会上传扩展名为aws s3的文件_Node.js_Amazon Web Services_Amazon S3_Amazon Ec2 - Fatal编程技术网

Node.js 我想上传扩展名为aws s3的文件,但它不会上传扩展名为aws s3的文件

Node.js 我想上传扩展名为aws s3的文件,但它不会上传扩展名为aws s3的文件,node.js,amazon-web-services,amazon-s3,amazon-ec2,Node.js,Amazon Web Services,Amazon S3,Amazon Ec2,这是我的文件Upload.js,但当我上传文件时,它将成功上传,但其扩展名丢失。我想上传扩展名为的文件。请帮助我 const aws = require('aws-sdk'); const multer = require('multer'); const multerS3 = require('multer-s3'); aws.config.update({ secretAccessKey: '', accessKeyId: '', region: 'us-eas

这是我的文件Upload.js,但当我上传文件时,它将成功上传,但其扩展名丢失。我想上传扩展名为的文件。请帮助我

const aws = require('aws-sdk');
const multer = require('multer');
const multerS3 = require('multer-s3');
aws.config.update({
    secretAccessKey: '', 
    accessKeyId: '',  
    region: 'us-east-2'
});

const s3 = new aws.S3({ })

const fileFilter = (req, file, cb) => {
    if (file.mimetype === 'music/AAC' || file.mimetype === 'music/AVI' ||file.mimetype === 'music/mp3' ||file.mimetype === 'music/AVI') {
        cb(null, true)
    } else {
        cb(new Error('Invalid Mime Type, only JPEG and PNG'), false);
    }
  }

const upload = multer({

    storage: multerS3({
    fileFilter,
      s3,
      bucket: 'admin-song',
      acl: 'public-read',
      metadata: function (req, file, cb) {
        cb(null, {fieldName: 'TESTING_META_DATA!'});
      },
      key: function (req, file, cb) {
        cb(null, Date.now().toString())
      }
    })
  })

module.exports = upload;
这是我的Api结束点,请指导我

 app.post('/v1/admin/upload/song',function(req, res) {

        singleUpload(req, res, function(err) {

          if (err) {
            return res.status(422).send({errors: [{title: 'File Upload Error', detail: err.message}] });
          }
          console.log(res)
          return res.json({'imageUrl': req['file'].location});
        });
      });

您必须在multer函数中添加任何您想要作为文件名的字符串

const upload = multer({

    storage: multerS3({
    fileFilter,
      s3,
      bucket: 'admin-song',
      acl: 'public-read',
      metadata: function (req, file, cb) {
        cb(null, {fieldName: 'TESTING_META_DATA!'});
      },
      key: function (req, file, cb) {
        cb(null, Date.now().toString() + '.' + fileExtension)
      }
    })
  })