首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >接口S3Client与类AmazonS3Client的区别

接口S3Client与类AmazonS3Client的区别
EN

Stack Overflow用户
提问于 2021-06-11 21:15:47
回答 1查看 1.3K关注 0票数 2

我正在创建一个需要S3客户机作为参数的方法。我不知道我该宣布它是什么类型的。

这是S3Client https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3Client.html的文档

忽略,因为回答了(这是AmazonS3Client https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/AmazonS3Client.html的文档,我的问题是推荐哪种类型,它们之间有什么区别?(谢谢!)

更新:

我在这里发现了另一个S3客户机:AmazonS3接口。https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/AmazonS3.html

但是,在类型setObjectTagging中支持的不是AmazonS3,而是S3Client类型。

AmazonS3是否提供了比S3Client更多的功能?如果我需要一些AmazonS3中的函数,而不是S3Client中的函数,或者S3Client中的一些函数,而不是AmazonS3中的函数呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-11 22:06:10

有两个版本: V1和V2。AmazonS3Client是较早的V1版本,而S3Client是较新的V2版本。

亚马逊建议使用V2:

AWSSDKforJava2.x是版本1.x代码库的主要重写版本。它构建在Java 8+之上,并添加了几个经常被请求的特性。这包括对非阻塞I/O的支持,以及在运行时插入不同的HTTP实现的能力。

您可以在这里的中找到S3 V2代码示例:

开发者指南-AWSSDKforJava2.x

(此时,Amazon服务指南中没有S3示例。)

此外,您还可以在这里找到AWS中的所有S3 V2代码示例:

代码/S3

如果您不熟悉使用AWS V2开发应用程序,建议您从这里开始:

开始使用AWSSDKforJava2.x

(这个即将开始的主题恰好使用来帮助您启动和运行S3 S3 V2)

更新

您说过:,但在类型AmazonS3中支持setObjectTagging,但在S3Client类型中支持。

使用在S3 S3桶中标记对象的方法是使用以下代码:

代码语言:javascript
复制
  // First need to get existing tag set; otherwise the existing tags are overwritten.
     GetObjectTaggingRequest getObjectTaggingRequest = GetObjectTaggingRequest.builder()
            .bucket(bucketName)
            .key(key)
            .build();

GetObjectTaggingResponse response = s3.getObjectTagging(getObjectTaggingRequest);

// Get the existing immutable list - cannot modify this list.
List<Tag> existingList = response.tagSet();
ArrayList<Tag> newTagList = new ArrayList(new ArrayList<>(existingList));

// Create a new tag.
Tag myTag = Tag.builder()
        .key(label)
        .value(LabelValue)
        .build();

// push new tag to list.
newTagList.add(myTag);
Tagging tagging = Tagging.builder()
        .tagSet(newTagList)
        .build();

PutObjectTaggingRequest taggingRequest = PutObjectTaggingRequest.builder()
        .key(key)
        .bucket(bucketName)
        .tagging(tagging)
        .build();

s3.putObjectTagging(taggingRequest);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67943534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档