java - 如何在java中从s3获取触发lambda的文件名
问题描述
告诉我如何在 java 中的 lambda 代码中获取从 s3 触发 lambda 的文件名?我的任务是从 s3 复制一个文件到我的 sftp 服务器使用 lambda。为了不让我每次都复制文件夹中的所有文件,我需要找出调用 lambda 的文件。
PS提前谢谢
解决方案
发送到 Lambda 的示例事件在此处。
我们可以使用java-events jar,将为我们S3Event
提供具有精确模式的类。
我们需要循环记录并找到s3.object.key
:
package com.test;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.events.S3Event;
public class MyHandler implements RequestHandler<S3Event, String> {
@Override
public String handleRequest(S3Event request, Context context) {
request.getRecords().forEach(record -> {
System.out.println(record.getS3().getObject().getKey());
});
return "success";
}
}
推荐阅读
- python - 如何使用excel或python计算一天内多笔交易的一个值
- node.js - 422 错误缺少 Access-Control-Allow-Origin 响应标头
- sql - Oracle - 在特定字符串之前选择一个字符串
- sql - HQL 意外令牌“(”子查询选择
- javascript - 剑道图表在 X 轴上显示错误的时间数据
- c++ - 在 CListCtrl 上设置排序指示符正在清除列标题
- java - 将 xml 字符串数组中的项目添加到片段内的回收器视图中
- python - 将二维 python 列表初始化为 [[9]*3]*3 似乎会创建对同一数组的引用。这是怎么回事?
- django - Django:UserCreationForm 没有得到自定义用户类
- php - 学说:拥有的一面和相反的一面