小编Rob*_*ens的帖子

S3 检索标签 - SdkClientException

我正在尝试通过以下方式从 s3 上托管的文件中检索标签

public Map<String, String> getTags(@NonNull URI file) {
    GetObjectTaggingRequest getTaggingRequest = new GetObjectTaggingRequest(file.getHost(), removeLeadingSeparator(file.getPath()));
    GetObjectTaggingResult getTagsResult = s3Client.getObjectTagging(getTaggingRequest);
    List<Tag> tagList = getTagsResult.getTagSet();
    Map<String, String> out = new HashMap<>();
    tagList.forEach(t -> out.put(t.getKey(), t.getValue()));
    return out;
}
Run Code Online (Sandbox Code Playgroud)

但我得到以下异常:

com.amazonaws.SdkClientException: Failed to parse XML document with handler class com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser$GetObjectTaggingHandler
Run Code Online (Sandbox Code Playgroud)

我的 URI 格式 s3://bucket/s3_key

我在 s3 上做的其他请求正常工作

https://docs.aws.amazon.com/AmazonS3/latest/dev/tagging-manage-javasdk.html

完整堆栈跟踪:com.amazonaws.SdkClientException:无法使用处理程序类 com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser$GetObjectTaggingHandler 解析 XML 文档

at com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser.parseXmlInputStream(XmlResponsesSaxParser.java:156)
at com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser.parseObjectTaggingResponse(XmlResponsesSaxParser.java:489)
at com.amazonaws.services.s3.model.transform.Unmarshallers$GetObjectTaggingResponseUnmarshaller.unmarshall(Unmarshallers.java:296)
at com.amazonaws.services.s3.model.transform.Unmarshallers$GetObjectTaggingResponseUnmarshaller.unmarshall(Unmarshallers.java:292)
at com.amazonaws.services.s3.internal.S3XmlResponseHandler.handle(S3XmlResponseHandler.java:62)
at com.amazonaws.services.s3.internal.ResponseHeaderHandlerChain.handle(ResponseHeaderHandlerChain.java:44)
at com.amazonaws.services.s3.internal.ResponseHeaderHandlerChain.handle(ResponseHeaderHandlerChain.java:30)
at com.amazonaws.http.response.AwsResponseHandlerAdapter.handle(AwsResponseHandlerAdapter.java:70)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleResponse(AmazonHttpClient.java:1503)
at …
Run Code Online (Sandbox Code Playgroud)

java amazon-s3 amazon-web-services

6
推荐指数
0
解决办法
350
查看次数

查询参数中的 spring boot offsetDateTime

我尝试创建以下 api:

    @GetMapping("/workerslist")
    public List<Worker> getWorkersList(
            @RequestParam(name = "lastPollBefore", required = false) OffsetDateTime lastPollBefore,
            @RequestParam(name = "lastPollAfter", required = false) OffsetDateTime lastPollAfter){
        return workerService.getWorkers(lastPollBefore, lastPollAfter);
    }
Run Code Online (Sandbox Code Playgroud)

但是当我调用它时,我收到以下错误:

{
  "_type": "ValidationError",
  "key": "validation-error",
  "message": "Failed to convert value of type 'java.lang.String' to required type 'java.time.OffsetDateTime'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [@org.springframework.web.bind.annotation.RequestParam java.time.OffsetDateTime] for value '2020-07-01T11:52:57.152Z'; nested exception is java.lang.IllegalArgumentException: Parse attempt failed for value [2020-07-01T11:52:57.152Z]",
  "constraints": [
    
  ]
}
Run Code Online (Sandbox Code Playgroud)

我找到了 localDateTime 的解决方案,但它们似乎不适用于 offsetDateTime,

java spring

3
推荐指数
1
解决办法
7638
查看次数

Java 中的大值应该选择哪种数据类型?

Java 中哪种数据类型可以处理最大值?

我必须存储不带逗号的大数字(我还不知道实际大小)。

在 C 中,我认为我会使用类似 unsigned long int 的东西。

Java 中最适合使用什么类型?

java variables double int

-1
推荐指数
1
解决办法
8205
查看次数

标签 统计

java ×3

amazon-s3 ×1

amazon-web-services ×1

double ×1

int ×1

spring ×1

variables ×1