Я пытаюсь загрузить файл с использованием настраиваемого URL-адреса в модификации.Загрузка изображения на Amazon s3 Отказоустойчивость: тайм-аут
Вот как я делает requestBody:
RequestBody fileBody = RequestBody.create(MediaType.parse(artifactHeaders.getContentType()), file);
Вот интерфейс:
@PUT
Call<ResponseBody> uploadArtifactToAmazon2(@Url String artifactUrl,
@Header("Content-Disposition") String contentDisposition,
@Header("x-amz-server-side-encryption") String xAmzServerSideEncryption,
@Header("x-amz-security-token") String xAmzSecurityToken,
@Header("Content-Type") String contentType,
@Body RequestBody requestBody);
Но я получаю это на мой журнал:
06-21 10:41:16.354 4760-4808/
D/OkHttp: 4�IDATx�<�g�dYv��������j7��cvf�c�5XR����!�06-21 10:41:16.354 4760-4808/D/OkHttp: E�R($�B����"()��D��.�avfz�{zf�Ww�̪J��|/��"������|ޖ�9�?9���Ȧʰ��uv���V���
06-21 10:41:16.504 4760-4808/D/OkHttp: �R>a1�~�`.�>����IOhQS�a�B>��=h0
[- - - HUNDREDS OF THESE LINES CONTINUE ]
06-21 10:41:16.567 4760-4808/D/OkHttp: Content-Type: image/png
06-21 10:41:16.567 4760-4808/D/OkHttp: Content-Length: 669719
После того, через пару секунд журнал дает мне следующее:
06-21 10:41:16.626 4760-4808/D/!!!: Cookie Name: __cfduid Cookie Value: df052a1723cd06647966e629e113d4a461466515894 Expiry: Wed, 21-Jun-2017 14:41:14 GMT+00:00
06-21 10:41:28.040 4760-4808/D/!!!: Cookie Name: __cfduid Cookie Value: df052a1723cd06647966e629e113d4a461466515894 Expiry: Wed, 21-Jun-2017 14:41:26 GMT+00:00
06-21 10:41:39.014 4760-4760/D/!!!: Failure Code: timeout
Я получаю изображение обратно? Что не так?
Можете ли вы показать нам некоторые из вашего кода ведения журнала, чтобы мы могли видеть источник этих строк? И я на стороне примечания. Я бы очень рекомендовал использовать AWS android lib для обновления до S3 ... Я ранее использовал Retrofit для загрузки файлов на S3 тоже, но не был впечатлен производительностью. Их lib оптимизирован и использует multipart без необходимости настраивать его самостоятельно. – snkashis
@snkashis Я серьезно рассматриваю возможность использования AWS android lib, однако учетные данные должны использовать его, исходя из нашего REST API, и он добавит больше размера в приложение. Я опубликую больше журналов. –
У меня были некоторые из тех же проблем, однако увеличение скорости было достаточно значительным, чтобы оправдать его (возможно, ваши загрузки не такие большие). Ваш REST api может предоставлять учетные данные cognito, используемые менеджером передачи. – snkashis