AWS Ответ S3 НЕ прошел, даже если файл полностью загружен - PullRequest
0 голосов
/ 29 мая 2020

Я просто пытаюсь загрузить изображение на S3 через приложение Android. На данный момент я пришел к выводу, что изображения размером более 5 МБ загружаются без проблем, однако изображения размером менее 5 МБ являются ПОЛНОСТЬЮ ЗАГРУЖЕННЫМ и могут быть загружены с S3 вручную, однако ответ я получаю НЕУДАЧИ. Я просто хочу напомнить вам, что 5 МБ - это нижний порог для выдачи многостраничного запроса (SDK загружает с помощью multipart автоматически, когда размер файла превышает 5 МБ, я проверил это в их коде).

Я также проверил сумму md5 вручную и суммы из двух файлов (загруженных и выбранных для загрузки) MATCH .

Я протестировал загрузку небольших изображений с помощью AWS S3 CLI, и он работает без проблем.

Это исключение, которое я получаю:

AmazonClientException: Unable to verify integrity of data upload. Client calculated content hash didn't match hash calculated by Amazon S3. You may need to delete the data stored in Amazon S3.

Это библиотеки, которые я использую:

com.amazonaws:aws-android-sdk-s3:$version

com.amazonaws:aws-android-sdk-mobile-client:$version

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 29 мая 2020

По сути, проблема заключалась в том, что корзина, в которую были загружены изображения, была зашифрована, как только мы создали новую незашифрованную корзину, загрузка прошла нормально. Кажется, что ha sh двух файлов различались, потому что один расчет ha sh был выполнен для зашифрованного файла, а другой - для незашифрованного файла. Кажется (хотя я не совсем уверен), что многостраничный запрос просто обходит проверку контрольной суммы md5.

Важно отметить, что это происходило только при использовании Android SDK, iOS отлично работает (не знаю, каковы точные различия в реализации, возможно, я смогу обновить это позже) .

Это работало в течение нескольких месяцев до того, как было введено шифрование.

Я изучу эту проблему дополнительно и уведомлю AWS службу поддержки, если для этого есть причина.

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