【问题标题】:How to resize image from S3 with Sharp?如何使用 Sharp 从 S3 调整图像大小?
【发布时间】: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
...

我不知道应该如何上传回来?

我做错了什么?

【问题讨论】:

    标签: javascript node.js amazon-web-services amazon-s3 sharp


    【解决方案1】:

    我认为sharp 构造函数接受一个缓冲区,但您传递给它的是来自 SDK 请求的整个响应。相反,尝试像这样将 data.Body 传递给Sharp fn:

    const convert = sharp(data.Body).resize(size, size).webp();

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-29
      • 2019-11-15
      • 2016-06-27
      • 1970-01-01
      • 2022-09-23
      • 1970-01-01
      • 2012-08-19
      相关资源
      最近更新 更多