恢复 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
获取每个 uploadId
和 key
的部件列表
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();
}
我正在尝试在 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
获取每个 uploadId
和 key
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();
}