用于上传/ putObject图像的AWS Lambda函数仅在本地计算机上起作用

FelProNet

我有一个lambda函数,该函数使用'request'通过URL获取文件流,并假设将其上传到s3的存储桶中。它可以在使用节点的本地计算机上正常运行,但不能在lambda内部运行。运行lambda之后,我有一个空文件,其名称为我想要的。

你应该知道的东西

  • lambda函数是异步的
  • 节点版本为8.10
  • 在示例中,您看到了putObject,但我也尝试了上载
  • 即使添加90-120秒的手动睡眠以让lambda运行,文件也不会上传
  • 我尝试使用context.succeed或callback('some result'),但仍无法正常工作

这是代码的相关部分

module.exports.handler = async(event, context, callback) => {
  const path = 'bucketToUpload';
  const name = 'imageFileName.jpg';
  let options = {
    uri: responseUrl, // This is the url of the image
    encoding: null
  };
  let reqRes = await request(options); // Here I have the stream
  let awsPutRes = await s3.client.putObject({
    Body: reqRes.body,
    Key: name,
    Bucket: path
  }).promise();
};

非常感谢您对此问题的任何帮助或指示。

FelProNet

因此,经过更多尝试,我得以解决该问题。

这是代码的一部分:

async function upload(fileStream, fileName, bucketName) {
  let params = {
    Body: fileStream,
    Key: fileName,
    Bucket: bucketName
  };
  await s3.client.putObject(params).promise();
}

module.exports.handler = async(event, context) => {
  try {
    let s3UploadParams = {
      uri: imageDownloadUrl,
      encoding: null
    };
    let imageFileStream = await request(s3UploadParams);
    await upload(imageFileStream, s3FileName, bucketName);
  } catch (err) {
    context.fail(null, 'Error trying to upload to aws' + err);
  }
}

我不是使用'request'lib而是使用'request-promise-native'从URL获取流。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

用于上传图像的 API 不起作用

在本地计算机上反向图像搜索(用于图像重复)

如何在本地计算机上模拟 AWS Parameter Store 进行 lambda 函数开发?

从本地计算机将文件上传到AWS

如何使用AWS控制台从Windows本地计算机将带库的python代码上传到AWS Lambda

laravel socialite在实时服务器上不起作用,仅在本地计算机上起作用

AWS Lambda函数-图像上传-流程审查

在本地计算机上使用git进行上传

putBytes() 与 putFile() 用于上传图像

如何设置PyCharm以在本地计算机上开发AWS Lambda功能?

AWS Lambda ::如何在本地ubuntu计算机上测试我的代码?

图像上传在服务器中不起作用。在本地主机上工作正常

将本地图像用于Read 3.0,Azure认知服务,计算机视觉

无法移动用于图像上传php的上传文件

ServiceStack端点,用于上传图像文件

getimagesize()不适用于图像上传

我的上传脚本仅在我的计算机上有效

仅在一台计算机上没有上传速度

如何用PHP编写的用于将文件上传到计算机上的文件夹的代码解决此问题?

ASP.NET Core 2.1中的数据保护仅在一台计算机上起作用

Visual Studio Code - 无法上传在我的计算机上本地创建的 nuget 包

适用于Windows的GitHub-如何删除本地计算机上的存储库?

JQuery不适用于本地计算机上的click事件,

用于TFS管理的本地计算机上的客户端工具

AWS .NET Core Lambda-图像上传中断

如何在网页上显示本地计算机上的图像

无法链接计算机上本地存储的HTML / CSS / REACT中的图像

AWS凭证不适用于Rails 4和Mongoid中的Paperclip图像上传

用于将svg图像上传到AWS S3的content-type