AWS S3 - 如何阻止图像强制下载而不是显示。

Jas*_*cci 5 amazon-s3 amazon-web-services

我目前正在尝试将图像从我的网站加载到 AWS S3。我有将图像上传到服务器的功能,但是当我尝试查看它们下载而不是显示的图像时。我读到有一种方法可以设置文件类型,因此不会发生这种情况。我不知道该怎么做。任何帮助都会很棒。

                router.post('/heroes/createNewHeroes', function(req,res) {
                    var formidable = require('formidable'),
                    http = require('http'),
                    util = require('util');

                    var form = new formidable.IncomingForm();

                    form.parse(req, function(err, fields, files) {
                        console.log(fields);
                        console.log(files);

                        // Load the AWS SDK for Node.js
                        var AWS = require('aws-sdk');
                        var shortid = require('shortid');
                        var fs = require('fs');
                        var fileStream = fs.createReadStream(files.asset.path);
                        var newFilename = shortid.generate()+"_"+files.asset.name;

                        // Set your region for future requests.
                        AWS.config.region = 'us-west-2';
                        AWS.config.accessKeyId = 'access Key';
                        AWS.config.secretAccessKey = 'secret Key';

                        console.log(newFilename);

                        fileStream.on('error', function (err) {
                          if (err) { throw err; }
                        });

                        fileStream.on('open', function () {
                            var s3bucket = new AWS.S3({params: {Bucket: ' '}});
                            s3bucket.createBucket(function() {
                              var params = {Key: newFilename, Body: fileStream};
                              s3bucket.upload(params, function(err, data) {
                                if (err) {
                                    console.log("Error uploading data: ", err);
                                } else {
                                    console.log("Successfully uploaded data");

                                    projectX.createHeroes(['plantTypes', 'asset', 'cost', 'energy', 'isSunProducer', 'isShooter', 'isExploding', 'sunFrequency', 'shootingFrequency', 'damage'], [fields.plantTypes, newFilename, fields.cost, fields.energy, fields.isSunProducer, fields.isShooter, fields.isExploding, fields.sunFrequency, fields.shootingFrequency, fields.damage], function(data){
                                        res.redirect('/heroes')
                                    });
                                }
                              });
                            });

                        });

                    });
                });
Run Code Online (Sandbox Code Playgroud)

小智 5

只需输入 "contentType:multerS3.AUTO_CONTENT_TYPE" 。它会起作用。

前任:

var upload = multer({
  storage: multerS3({
    s3: s3,
    bucket: 'some-bucket',
    contentType: multerS3.AUTO_CONTENT_TYPE,
    key: function (req, file, cb) {
      cb(null, Date.now().toString())
    }
  })
})
Run Code Online (Sandbox Code Playgroud)

访问此链接了解更多详情https://github.com/badunk/multer-s3