首页 > 解决方案 > 使用 multer 上传后图像未显示在 AWS 中

问题描述

我有以下用于上传文件的 aws 设置。文件加载得很好,但无论我做什么,我都无法通过 aws 对象 URL 查看文件。它给出了一个空白页。

我尝试将 ACL 更改为“public-read”,提供文件“Content-Type”和 ContentDisposition:“inline”,但这些似乎都不能解决我的问题

//config file
const AWS = require('aws-sdk');
const env = require('./s3.env.js');
const s3Client = new AWS.S3({
    accessKeyId: env.AWS_ACCESS_KEY,
    secretAccessKey: env.AWS_SECRET_ACCESS_KEY,
    region : env.REGION
});

const uploadParams = {
    Bucket: env.Bucket,
    ACL: 'public-read',
    ContentDisposition:  'inline'
};

const s3 = {};
s3.s3Client = s3Client;
s3.uploadParams = uploadParams;

module.exports = s3;
//upload controller
const s3 = require('../../s3.config.js');
const s3Client = s3.s3Client;

module.exports = {
    uploadStuff(req, res) {
        console.log(req.file)
        const params = s3.uploadParams;
    params.Key = req.file.filename;
    params.Body = req.file.filename;
    params.ContentType = req.file.mimetype;
    s3Client.upload(params, (err, data) => {});
}
}

I expect that after the file is successfully uploaded, i should be able to preview it with the Object URL provided

//config file
const AWS = require('aws-sdk');
const env = require('./s3.env.js')

const s3Client = new AWS.S3({
    accessKeyId: env.AWS_ACCESS_KEY,
    secretAccessKey: env.AWS_SECRET_ACCESS_KEY,
    region: env.REGION
});
const uploadParams = {
    Bucket: env.Bucket,
    ACL: 'public-read',
    ContentDisposition: 'inline'
};
const s3 = {};
s3.s3Client = s3Client;
s3.uploadParams = uploadParams;

module.exports = s3;
//upload controller
const s3 = require('../../s3.config.js');
const s3Client = s3.s3Client;
module.exports = {
    uploadStuff(req, res) {
        console.log(req.file)
        const params = s3.uploadParams;
        params.Key = req.file.filename;
        params.Body = req.file.filename;
        params.ContentType = req.file.mimetype;
        s3Client.upload(params, (err, data) => {
    });
}

标签: javascriptnode.jsamazon-web-servicesaws-sdkmulter

解决方案


推荐阅读