我一直在使用AWS android sdk(s)来处理我的android应用程序中S3上的文件。用户遇到了一些问题,其中很少涉及连接超时。虽然在我的应用程序中设置的AmazonS3
客户端,我已经设置了超时,并使用下面的代码的重试次数:AWS Android SDK连接超时和重试
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setMaxErrorRetry(4);
clientConfiguration.setConnectionTimeout(10000); // default is 10 secs
clientConfiguration.setSocketTimeout(15000); // default is 50 secs
我到处看,它说,maxErrorRetry
只做重试failed retryable requests
。与连接超时和套接字连接超时相关的错误是否也属于此类别?如果不是,这种情况的解决方案是什么?我一直在寻找这个相当长的一段时间,但没有得到任何明确的答案。
另外,我一直面临两个特殊的例外,我在TransferListener
回调中遇到了这个例外。主要有:
- 无法对象的内容存储到磁盘:读取超时(所有谁面对任何AWS例外面对此异常的用户的14%)
- 无法存储对象的内容到硬盘:超时(17.4所有面临任何AWS例外的用户的百分比都面临此例外)
上述两个对我们来说是最痛苦的。我一直认为这是因为用户设备上没有更多的存储空间。我一直在使用外部存储器中的特定于应用程序的目录来存储这些文件,现在正在考虑将这些文件移动到缓存中,以便系统在设备上没有剩余空间的情况下处理清除文件。您认为这是一个很好的解决方案,假设用户设备上的空间不足。 有什么其他的可能性,因为上述存储相关的异常可能发生?
谢谢你的回复。 S3存储桶对象具有所需的权限。该应用程序正在投入生产,并且这些都是发生在小部分用户中的例外情况。其他方面,我一定会考虑。 – Swapnil
如果问题仍然存在,您可以使用堆栈跟踪创建论坛帖子/ GitHub问题以及有关重现问题的更多详细信息? – Karthikeyan