gpt4 book ai didi

java - 标记 S3 存储桶时出现 MalformedXML

转载 作者:行者123 更新时间:2023-11-30 08:12:23 25 4
gpt4 key购买 nike

我正在尝试使用 AWS Java API 将一组新标签添加到 S3 存储桶,但出现如下错误:

com.amazonaws.services.s3.model.AmazonS3Exception: The XML you provided was not well-formed or did not validate against our published schema (Service: Amazon S3; Status Code: 400; Error Code: MalformedXML; Request ID: 5B3401CBDB133A88), S3 Extended Request ID: z1EDhMH5vN7o/9Tk93K5R1gWmmqUr49WjEz2rovD9HRCGJ54yHBfoTuUURvnpoizlCUK3Fy9qbY=

这是我写的代码( newTags 是一个 Map<String, String> ):

List<TagSet> tags = amazonS3.getBucketTaggingConfiguration(bucketName).getAllTagSets();
tags.add(new TagSet(newTags));
s3Service.setBucketTaggingConfiguration(bucketName, new BucketTaggingConfiguration(tags));

我自己甚至没有使用 XML,而且对于实际出错的地方,该错误无济于事。发生了什么事?

最佳答案

Java API 和 REST API 之间有一点不匹配。看看 PUT Bucket Tag request .没有明确说明,但暗示您只能拥有一个 TagSetTagging Collection 。但是,BucketTaggingConfiguration 允许使用 TagSet 列表。

不是添加新的 TagSet,而是获取 Map<String, String>从配置中的第一个 TagSet 开始,将您的标签添加到该 map ,然后从中创建一个新的 TagSet。将 BucketTaggingConfiguration 视为仅允许 TagSet 的单项列表。

关于java - 标记 S3 存储桶时出现 MalformedXML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30521046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com