<分区>
我写了一个 AWS Lambda 函数,它的目标是在调用时 - 它读取文件的内容,比如 x.db,从中获取特定值并返回给调用者。但是这个 x.db 文件发生了变化不时。所以我想将这个 x.db 文件上传到 S3 并像读取文件一样从 AWS Lambda 函数读取它。
File xFile = new File("S3 file in x.db");
如何从用 Java 编写的 AWS Lambda 函数中读取这样的 x.db S3 文件?
<分区>
我写了一个 AWS Lambda 函数,它的目标是在调用时 - 它读取文件的内容,比如 x.db,从中获取特定值并返回给调用者。但是这个 x.db 文件发生了变化不时。所以我想将这个 x.db 文件上传到 S3 并像读取文件一样从 AWS Lambda 函数读取它。
File xFile = new File("S3 file in x.db");
如何从用 Java 编写的 AWS Lambda 函数中读取这样的 x.db S3 文件?
最佳答案
使用 Java S3 SDK。如果您将名为 x.db
的文件上传到 S3 存储桶 mybucket
,它看起来像这样:
import com.amazonaws.services.s3.*;
import com.amazonaws.services.s3.model.*;
...
AmazonS3 client = new AmazonS3Client();
S3Object xFile = client.getObject("mybucket", "x.db");
InputStream contents = xFile.getObjectContent();
此外,您应该确保分配给 lambda 函数的角色可以访问 S3 存储桶。应用这样的策略:
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::mybucket",
"arn:aws:s3:::mybucket/*"
]
}]
关于java - 如何从用 Java 编写的 AWS Lambda 函数读取 S3 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36462933/