Безопасно ли заполнять список деталей CompleteMultipartUpload () результатом ListParts ()? - PullRequest
0 голосов
/ 20 октября 2019

на CompleteMultipartUpload API мы должны поместить список загруженных электронных компонентов.

Я увидел, что ListParts результат не совпадает с состоянием моего приложения для деталей. во всех моих UploadPart вызовах нет ошибок, но иногда ListParts пропускает некоторые из них.

Итак, правильно ли заполнять эти E-теги результатом ListParts API? Если нет, то почему результаты не совпадают?

1 Ответ

1 голос
/ 21 октября 2019

небезопасно использовать данные ответа ListParts при вызове CompleteMultipartUpload. Это может замаскировать проблемы в вашем коде.

Используйте только возвращенный список для проверки. Вы не должны использовать результаты этого списка при отправке полного многочастного запроса на загрузку. Вместо этого ведите собственный список номеров деталей, указанных вами при загрузке деталей, и соответствующие значения ETag, которые возвращает Amazon S3.

https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html

ListParts предназначен только дляпроверка работоспособности, для сравнения. Вам необходимо использовать etags, которые вы получили при загрузке оригинальных деталей. Если ответ ListParts является неполным, это может быть только возможной проблемой согласованности в S3, и последующий опрос может вернуть явно отсутствующие части. Если ответ ListParts действительно конфликтует с тем, что вы получили при загрузке деталей, существует проблема с вашим кодом или повреждением по проводам или (маловероятно) внутри S3.

Многочастный клиент загрузки не имеетнужно для действия ListParts.

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