Возобновить многопользовательскую загрузку S3: PartETag - PullRequest
0 голосов
/ 13 декабря 2018

Я пытаюсь реализовать многоэлементную загрузку в Java, следуя этому примеру: https://docs.aws.amazon.com/AmazonS3/latest/dev/llJavaUploadFile.html

Но моя реальная задача немного сложнее: мне нужно поддерживать возобновление в случае, если приложение было закрыто во время загрузки,Кроме того, я не могу использовать TransferManager - мне нужно использовать низкоуровневый API по определенной причине.

Код здесь довольно простой, но проблема возникает с частью List<PartETag> partETags.При завершении возобновленной загрузки мне нужно иметь эту коллекцию, предварительно заполненную в процессе загрузки.И, очевидно, если я пытаюсь завершить загрузку после перезапуска приложения, у меня больше нет этой коллекции.

Итак, вопрос: как мне завершить возобновленную загрузку?Можно ли получить List<PartETag> partETags с сервера, используя какой-то API?У меня есть только MultipartUpload объект.

1 Ответ

0 голосов
/ 21 декабря 2018

Получите список выполняемых составных загрузок

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();
}

Пакет Amazon S3 SDK

Клиент AmazonS3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...