java - 如何在返回 S3ObjectSummary 时获取对象 URL 和服务器端加密

标签 java amazon-s3

我创建了一个 java 服务来返回 S3 对象的元数据,但在我的 json 响应中它没有返回服务器端加密和对象 URL

这是我的代码

 @GetMapping(value = "/ListS3BucketsObjects")
    public List<S3ObjectSummary> ListS3BucketsObjects(@RequestParam String bucketName) {
        try {
            BasicAWSCredentials creds = new BasicAWSCredentials("xxxx",
                    "xxxxxxx");
            final AmazonS3 s3client = AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(creds))
                    .withRegion(Regions.US_EAST_1).build();
            ObjectListing objectListing = s3client.listObjects(bucketName);
            return objectListing.getObjectSummaries();
        } catch (Exception Ex) {
            throw Ex;
        }
    }

我得到这样的结果

[
    {
        "bucketName": "xxxx",
        "key": "xx",
        "size": 489583,
        "lastModified": "2020-01-01T06:59:52.000+0000",
        "storageClass": "STANDARD",
        "owner": {
            "displayName": "xxxxx",
            "id": "xxx"
        },
        "etag": "xxxxx"
    }]

如何获取对象 URL 和服务器端加密?

最佳答案

检查这个answer 。 基于S3ObjectSummary,您可以检索元数据:

ObjectMetadata objectMetadata = s3client.getObjectMetadata(bucketName, objectSummary.getKey());

关于java - 如何在返回 S3ObjectSummary 时获取对象 URL 和服务器端加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59579944/

相关文章:

java - 如何在 Spring WebFlux @ExceptionHandler 中访问 RequestBody?

javascript - 不推荐访问存储桶虚拟托管样式的 URL? (AWS S3)

amazon-s3 - Amazon S3 与 Cloudfront 托管 mp3 和图像?

amazon-web-services - s3 - 文件上传 - 多个 sqs 队列中的消息

json - CloudFormation 模板文件——如何在字符串中间使用 ref 函数来引用参数

java - 如何诊断脚本语言中发生的 Java ClassNotFound 异常,而不是 Java 代码中发生的异常

java - 如何更新 jar 目录中的文件

java - 为什么你不应该在constraintlayout中使用match_parent?

amazon-web-services - 如何确定公共(public) AWS S3 存储桶的区域?

Java - 我的代码不会向类属性返回任何非空值