java - 如何从用 Java 编写的 AWS Lambda 函数读取 S3 文件?

标签 java amazon-web-services amazon-s3 aws-lambda

<分区>

我写了一个 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/

相关文章:

java - OSGI可以应用在什么地方?

java - ACR122u直接通讯无 react

java - 将 HTML 模板存储在 NoSQL DB 中

amazon-web-services - 将视频上传到aws S3

amazon-s3 - 亚马逊 s3cmd ls

amazon-web-services - S3 : Make uploaded files public by default

java - spring MVC jsp foreach

java - Eclipse 想要运行错误的类

amazon-web-services - boto3 分页器可以订购吗?

json - 使用 AWS S3-select 获取 json 文件中对象计数的 SQL 表达式