Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将图像上载到Amazon s3改装失败:超时_Android_Amazon S3_Amazon_Retrofit2_Okhttp3 - Fatal编程技术网

Android 将图像上载到Amazon s3改装失败:超时

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,

我正在尝试使用改装中的自定义url上载文件

下面是我创建请求主体的方式:

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)