无法查看我使用 aws-sdk 下载并使用节点写入磁盘的图像
cant view image that I downloaded using aws-sdk and wrote to disk using node
我正在使用 aws-sdk
节点从 s3
存储桶在我的快速服务器上下载图像(.png 文件),然后使用 fs.writeFileSync
将其写入磁盘。
问题是当我尝试在我的计算机上查看图像时,它说:
is appears that we dont support this file format.
我检查了下载图像的属性及其 37.2 KB,这意味着返回了一些内容。
这不是下载图片的正确方法吗?
这是我的代码:
function downloadFile(fileKey) {
const downloadParams = {
Key: fileKey,
Bucket: bucketName,
};
return s3.getObject(downloadParams).promise();
}
router.get("/getImage", async (req, res) => {
try {
let image= await downloadFile(`${req.query.imageID}.png`);
fs.writeFileSync(`Images/${req.query.image}.png`, image);
res.status(200).send();
} catch (e) {
console.log(e);
res.status(500).send(e);
}
});
在您的代码中,请确保您将正确的参数传递给 fs.writeFileAsync。正如我所看到的 plot
而不是 image
.
其次,请确保直接从 s3 下载图像,并确保您可以在计算机上查看它,否则您必须在将图像上传到 s3 时添加 'Content-Type': 'image/png'
。
我的错误是我将完整的 s3 result
写入磁盘 (image
) 而不是 result
中的 Body
。
这是正确的代码:
fs.writeFileSync(`Images/${req.query.taskID}-plot.png`, image.Body);
我正在使用 aws-sdk
节点从 s3
存储桶在我的快速服务器上下载图像(.png 文件),然后使用 fs.writeFileSync
将其写入磁盘。
问题是当我尝试在我的计算机上查看图像时,它说:
is appears that we dont support this file format.
我检查了下载图像的属性及其 37.2 KB,这意味着返回了一些内容。
这不是下载图片的正确方法吗?
这是我的代码:
function downloadFile(fileKey) {
const downloadParams = {
Key: fileKey,
Bucket: bucketName,
};
return s3.getObject(downloadParams).promise();
}
router.get("/getImage", async (req, res) => {
try {
let image= await downloadFile(`${req.query.imageID}.png`);
fs.writeFileSync(`Images/${req.query.image}.png`, image);
res.status(200).send();
} catch (e) {
console.log(e);
res.status(500).send(e);
}
});
在您的代码中,请确保您将正确的参数传递给 fs.writeFileAsync。正如我所看到的 plot
而不是 image
.
其次,请确保直接从 s3 下载图像,并确保您可以在计算机上查看它,否则您必须在将图像上传到 s3 时添加 'Content-Type': 'image/png'
。
我的错误是我将完整的 s3 result
写入磁盘 (image
) 而不是 result
中的 Body
。
这是正确的代码:
fs.writeFileSync(`Images/${req.query.taskID}-plot.png`, image.Body);