当前位置: 首页 > 知识库问答 >
问题:

aws-lambda在s3-javascript上编写文件

贺宏富
2023-03-14
var AWS = require('aws-sdk');
var s3 = new AWS.S3();

exports.handler = async (event) => {

            var bucketName = 'arn:aws:s3:::alessio77';
            var keyName = 'prova.txt';
            var content = 'This is a sample text file';
            var params = { 'Bucket': bucketName, 'Key': keyName, 'Body': content };
            s3.putObject(params, function (err, data) {
                console.log('entrato')
                if (err)
                    console.log(err)
                else
                    console.log("Successfully saved object to " + bucketName + "/" + keyName);
            });
};

这段代码既不写文件,也不给我一个错误,这是日志:

开始请求ID:7c93b1b9-73c1-4f18-9824-095bcbe292bf版本:$最新结束请求ID:7c93b1b9-73c1-4f18-9824-095bcbe292bf报告请求ID:7c93b1b9-73c1-4f18-9824-095bcbe292bf持续时间:706.18 ms计费持续时间:800 ms内存大小:128 MB最大使用内存:90 MB

共有1个答案

公孙琛
2023-03-14

s3.putObject是异步的,您需要等待它。大多数aws api调用都会返回一个AWS.Request,该AWS.Request可以返回一个Promise。这里有一个使用await的解决方案。

var AWS = require('aws-sdk');
var s3 = new AWS.S3();

exports.handler = async (event) => {

            var bucketName = 'arn:aws:s3:::alessio77';
            var keyName = 'prova.txt';
            var content = 'This is a sample text file';
            var params = { 'Bucket': bucketName, 'Key': keyName, 'Body': content };
            try {
                console.log('entrato')
                const data = await s3.putObject(params).promise();
                console.log("Successfully saved object to " + bucketName + "/" + keyName);
                } catch (err) {
                     console.log(err)

                };
};
 类似资料:
  • 问题内容: 我在AWS中有一个Node 4.3 Lambda函数。我希望能够将文本文件写入S3,并阅读了许多有关如何与S3集成的教程。但是,所有这些都涉及在写入S3之后如何调用Lambda函数。 如何使用节点从Lambda在S3中创建文本文件?这可能吗?亚马逊的文件似乎没有涵盖它。 问题答案: 是的,绝对有可能! 通过选择或更新执行lambda的IAM角色,确保为Lambda函数提供对目标s3存储

  • 问题内容: 我已经编写了一个AWS Lambda函数,其目的是在调用时- 它读取文件x.db的内容,从中获取特定值并返回给调用者。但是这个x.db文件会不时更改。因此,我想将此x.db文件上传到S3并从AWS Lambda函数读取它,就像读取文件一样。 如何从用Java编写的AWS Lambda Function中读取此类x.db S3文件? 问题答案: 使用Java S3 SDK。如果您将一个名

  • 我需要使用docx4j和iText生成文件(. docx,. pdf)。最终生成的文档应该使用AWS lambda函数存储在S3桶中。 我试过几种方法,但没有一种对我有效。我可以使用java代码将本地文件上传到S3 bucket,并将普通文本文件写入AWS S3 bucket。 然而,我的要求是,首先我必须为所需位置的(.docx.pdf)创建一个文件路径,即S3 bucket,然后调用我的代码生

  • 我有一本书。NET核心lambda,我正在将图像上传到S3存储桶中。 这在使用测试工具的开发模式下工作得很好,但一旦发布,它就会超时,并且没有错误消息。 这是我的代码,在尝试上传到S3之前,我将一个bas64图像转换为一个字节数组。 它在上传时被卡住了。我还尝试了方法,该方法也有同样的效果。 我想知道这是否与将对象上传到S3 bucket所需的权限有关? 我目前使用的是一个IAM用户,该用户使用A

  • 从第二行到最后一行的打印值按预期输出特殊字符,但是一旦我下载并打开CSV文件,其中的字符仍然不是UTF-8。 PS:我喜欢我的代码的当前形式,因为我不需要像其他一些问题/答案建议的那样临时将文件保存在“/tmp”文件夹中。我也不需要打包和上传Pandas/Unicodecsv到我的Lambda环境;对我这样的初学者来说太复杂了。回答时请记住这一点。

  • 我试图遵循AWS Lambda Java示例:http://docs.aws.amazon.com/lambda/latest/dg/with-s3-example-deployment-pkg.html#with-s3示例部署pkgJava 创建了新的类以插入S3映像修改lambda代码。添加了aws-lambda-java-core1.0.0,aws-lambda-java-event1.0.