Amazon S3 AWS SDK [Java] - 多部分上传如何在 http 响应中获取自定义 header?

Amazon S3 AWS SDK [Java] - MultiPart Upload how to get a custom header in the http response?

如何在使用 TransferManager 时从服务器响应访问自定义 header?

我们在服务器的响应中添加了自定义 header,在客户端,我们使用默认传输管理器进行分段上传

有什么建议可以连接吗?

所以基本上我想传递 class 中 return response.getAwsResponse(); 的响应:AmazonS3Client 方法

private <X, Y extends AmazonWebServiceRequest> X invoke(Request<Y> request,
                HttpResponseHandler<AmazonWebServiceResponse<X>> responseHandler,
                String bucket, String key, boolean isAdditionalHeadRequestToFindRegion) { 

该响应将包含来自服务器的 HTTP 响应,其中包含我所追求的自定义石南花,基本上是在文件 100% 完成时发回的唯一 ID,以便我可以对其进行操作。

我需要将此自定义 header 从响应传递到我使用传输管理器和 upload.waitForCompletion() 的一开始, 我也不想编辑亚马逊的,

所以有人知道是否有接口或其他 object 可以让我访问它吗?

在对框架进行一些调试后我坚信没有办法访问http使用 TransferManager

时响应

对于我们正在尝试做的事情,我们需要在文件上传完成并组装后从服务器向客户端发送一个唯一ID

** 因此,如果您不介意不要使用 TransferManager 的优点,您可以编写 "your own TransferMananger" 而不是您将拥有完全控制权,但是在客户端,我们真的不想要添加自定义代码但有一个标准和简单的方法(但这是针对我的情况),如果您决定手动执行它,它可以完成我已经尝试过并且有效!

因此,作为替代方案,我们虽然通过 eTag 从服务器发送,这不是很好,但可以完成这项工作,并将保持客户端简单和干净

关于如何以更好的方式发回此值的任何建议?

Upload up = tm.upload(bucketName, file.getName(), file);

UploadResult result = (UploadResult) ((UploadImpl) up).getMonitor().getFuture().get();
String uniqueIdFromServer = result.getETag();