【问题标题】:How get key field from amazon sqs queue?如何从亚马逊 sqs 队列中获取关键字段?
【发布时间】:2022-01-19 07:22:13
【问题描述】:

这是从 amazon sqs 队列中获取存储桶名称和密钥名称的好方法吗

      ObjectMapper mapper = new ObjectMapper();
    Map<String, Object> messageMap = mapper.readValue(message, Map.class);
    ArrayList records = (ArrayList) messageMap.get("Records");
    LinkedHashMap firstRec = (LinkedHashMap) records.get(0);
    LinkedHashMap s3 = (LinkedHashMap) firstRec.get("s3");
    LinkedHashMap object = (LinkedHashMap) s3.get("object");
    String keyName = (String) object.get("key");//the actual object that's been uploaded
    LinkedHashMap bucket = (LinkedHashMap) s3.get("bucket");
    String name = (String) bucket.get("name");//the bucket name

【问题讨论】:

标签: java amazon-web-services spring-boot amazon-s3 amazon-sqs


【解决方案1】:

这是来自AWS S3 Event notification using Lambda function in Java的示例:

public Object handleRequest(S3Event input, Context context) {
AmazonS3Client s3Client = new AmazonS3Client(new DefaultAWSCredentialsProviderChain());        

for (S3EventNotificationRecord record : input.getRecords()) {
    String s3Key = record.getS3().getObject().getKey();
    String s3Bucket = record.getS3().getBucket().getName();

    // retrieve s3 object
    S3Object object = s3Client.getObject(new GetObjectRequest(s3Bucket, s3Key));
    InputStream objectData = object.getObjectContent();

    ...
}        
return "success";}

【讨论】:

    猜你喜欢
    • 2011-07-15
    • 1970-01-01
    • 2015-05-12
    • 1970-01-01
    • 2018-06-04
    • 1970-01-01
    • 1970-01-01
    • 2013-07-22
    • 2015-07-22
    相关资源
    最近更新 更多