尝试使用带有Node.js运行时的AWS Lambda将图像保存到AWS S3子文件夹

时间:2019-02-15 00:17:24

标签: node.js amazon-web-services amazon-s3 serverless

我在aws s3中有一个存储桶,名为BUCKET,在存储桶中有一个名为images的文件夹。我想获取图像并进行图像处理,然后使用s3.putobject将其调整大小并放入BUCKET /图像中。

下面的代码使用仅包含根存储桶名称的BUCKET。那就是桶。我需要桶/图像。当我尝试将key设置为images / originalKey时,它将无法正常工作。

如果我给BUCKET /图像,也将不起作用。

我正在AWS lamda服务中使用此代码。

 S3.getObject({Bucket: BUCKET, Key:  `images/${originalKey}`}).promise()
.then(data => Sharp(data.Body)
  .resize(width, height)
  .toFormat('png')
  .toBuffer()
)
.then(buffer => S3.putObject({
    Body: buffer,
    Bucket: BUCKET,
    ContentType: 'image/png',
    Key: key,
  }).promise()
)
.then(() => callback(null, {
    statusCode: '301',
    headers: {'location': `${URL}/${key}`},
    body: '',
  })
)
.catch(err => callback(err))

0 个答案:

没有答案