繁体   English   中英

AWS S3 上传的图像已部分加载

[英]AWS S3 Uploaded Image is Partially Loaded

我正在尝试使用 aws-sdk package 从我的 Node.js 项目的文件结构将本地存储的图像上传到我的 AWS S3 存储桶并且能够成功上传它,但是,上传的图像是图像的部分渲染版本。 当我查看 AWS 为图像创建的 URL 时,只有前 1% (12kb) 可见。 我已将文件注销到控制台并确保它是我认为的那样,并且确实如此。 但是由于某种原因,当我将它上传到 S3 时,它是图像的截断/截断版本。

所有的教程看起来都很简单,但似乎没有人提到这个问题。 我一直在努力解决它几个小时,但似乎没有任何效果。 我已经尝试了所有可以在网上找到的东西,例如:

以下是相关代码:

const aws = require("aws-sdk")
const { infoLogger } = require("./logger")

async function uploadCoverImage() {
    try {
        aws.config.update({
            secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
            accessKeyId: process.env.AWS_ACCESS_KEY_ID,
            region: "us-east-2",
        })
        const s3 = new aws.S3()

        fs.readFile("cover.jpg", (error, image) => {
            if (error) throw error
            const params = {
                Bucket: process.env.BUCKET_NAME,
                Key: "cover.jpg",
                Body: image,
                ACL: "public-read",
                ContentType: "image/jpg",
            }
            s3.upload(params, (error, res) => {
                if (error) throw error
                console.log(`${JSON.stringify(res)}`)
            })
        })
    } catch (error) {
        infoLogger.error(`Error reading cover file: ${JSON.stringify(error)}`)
    }
}
module.exports = uploadCoverImage

我发现它在图像通过 fs.createReadStream() 在我的代码库的不同部分完成下载之前正在上传,这就是它在 S3 中部分加载的原因。 我从来没有注意到,因为我只在本地文件系统中看到完全加载的图像。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM