恢复 S3 分段上传:PartETag

Resume S3 multipart upload: PartETag

我正在尝试在 Java 中实现分段上传,遵循此示例:https://docs.aws.amazon.com/AmazonS3/latest/dev/llJavaUploadFile.html

但我的实际任务有点复杂:我需要支持恢复以防应用程序在上传过程中关闭。另外,我不能使用 TransferManager - 由于特殊原因我需要使用低级 API。

那里的代码非常简单,但问题出在 List<PartETag> partETags 部分。在完成恢复上传时,我需要有这个集合,以前在上传过程中填充过。而且,很明显,如果我试图在应用程序重启后完成上传,我就不再拥有这个集合了。

所以问题是:如何完成恢复上传?是否可以使用一些API从服务器获取List<PartETag> partETags?我只有一个 MultipartUpload 对象。

获取正在进行的分段上传列表

MultipartUploadListing multipartUploadListing = 
s3Client.listMultipartUploads(new ListMultipartUploadsRequest(bucketName)); 

## for uploadId and keyName 

获取每个 uploadIdkey

的部件列表
PartsListing partsListing = 
s3Client.listParts(new ListPartsRequest(bucketName, key, uploadId));

获取部分汇总列表

List<PartSummary> parts = partsListing.getParts();

来自 PartSummary getETag() 和 getPartNumber()

for(PartSummary part: parts)
{
  part.getETag();
  part.getPartNumber();
}

Amazon S3 SDK Package

AmazonS3 client