Android 将图像上载到Amazon s3改装失败:超时
我正在尝试使用改装中的自定义url上载文件 下面是我创建请求主体的方式:Android 将图像上载到Amazon s3改装失败:超时,android,amazon-s3,amazon,retrofit2,okhttp3,Android,Amazon S3,Amazon,Retrofit2,Okhttp3,我正在尝试使用改装中的自定义url上载文件 下面是我创建请求主体的方式: RequestBody fileBody = RequestBody.create(MediaType.parse(artifactHeaders.getContentType()), file); 以下是界面: @PUT Call<ResponseBody> uploadArtifactToAmazon2(@Url String artifactUrl,
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);
我能找回图像吗?怎么了?终于解决了这个问题。事实证明,改装有一个默认的10秒。超时(请参阅详细信息) 这会中断或停止改装部分的上传 我在日志中看到的字符(我使用的是HttpLoggingInterceptor.Level.BODY)。解决方案是设置超时持续时间:
httpClient.readTimeout(10, TimeUnit.MINUTES)
.connectTimeout(10, TimeUnit.MINUTES)
我的下一个任务是确定上传文件需要多长时间,并使用该时间设置超时持续时间,或者正确处理超时事件。最终解决了这个问题。事实证明,改装有一个默认的10秒。超时(请参阅详细信息) 这会中断或停止改装部分的上传 我在日志中看到的字符(我使用的是HttpLoggingInterceptor.Level.BODY)。解决方案是设置超时持续时间:
httpClient.readTimeout(10, TimeUnit.MINUTES)
.connectTimeout(10, TimeUnit.MINUTES)
我的下一个任务是确定上传文件需要多长时间,并使用该时间设置超时持续时间,或者正确处理超时事件。能否向我们展示一些日志代码,以便我们查看这些行的源代码?我有一个附带说明……我强烈建议使用AWS android库更新到S3……我以前也使用过改型将文件上传到S3,但对性能没有印象。他们的lib经过优化并使用多部分,而您无需自己装配。@snkashis我正在认真考虑使用AWS android lib,但是需要使用它的凭据来自我们的REST API,它将为应用程序增加更多大小。我会发布更多的日志。我也有一些同样的担忧,但是速度的提高是值得的(也许你的上传量没有那么大?)。您的RESTAPI可以提供transfer manager使用的cognito凭据。您可以向我们展示一些日志代码,以便我们可以查看这些行的源代码吗?我有一个附带说明……我强烈建议使用AWS android库更新到S3……我以前也使用过改型将文件上传到S3,但对性能没有印象。他们的lib经过优化并使用多部分,而您无需自己装配。@snkashis我正在认真考虑使用AWS android lib,但是需要使用它的凭据来自我们的REST API,它将为应用程序增加更多大小。我会发布更多的日志。我也有一些同样的担忧,但是速度的提高是值得的(也许你的上传量没有那么大?)。您的RESTAPI可以提供传输管理器使用的cognito凭证。
httpClient.readTimeout(10, TimeUnit.MINUTES)
.connectTimeout(10, TimeUnit.MINUTES)