如何使用 Sharp 从 S3 调整图像大小?
Posted
技术标签:
【中文标题】如何使用 Sharp 从 S3 调整图像大小?【英文标题】:How to resize image from S3 with Sharp? 【发布时间】:2021-04-25 18:58:40 【问题描述】:我正在尝试使用 Node.js API 中的 @aws-sdk/v3 调整从 S3 上传的图像的大小。
首先,我从 S3 获取对象(图像),如下所示:https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascriptv3/example_code/s3/src/s3_getobject.ts
...
const params = Bucket: AWS_BUCKET_NAME, Key: key
const data = await s3.send(new GetObjectCommand(params))
console.log(` >> Success, bucket returned:`, data) // Log correctly
然后我尝试调整数据(图像)的大小:
const convert = sharp(data).resize(size, size).webp()
但它会抛出:
>> data.type: object
(node:35583) UnhandledPromiseRejectionWarning: Error: Input file is missing
...
我不知道应该如何上传回来?
我做错了什么?
【问题讨论】:
【参考方案1】:我认为sharp
构造函数接受一个缓冲区,但您传递给它的是来自 SDK 请求的整个响应。相反,尝试像这样将 data.Body 传递给Sharp fn:
const convert = sharp(data.Body).resize(size, size).webp();
【讨论】:
以上是关于如何使用 Sharp 从 S3 调整图像大小?的主要内容,如果未能解决你的问题,请参考以下文章
如何在nodejs中使用sharp调整图像大小然后使用multer上传
如何在nodejs中使用sharp调整图像大小然后使用multer上传