关于安卓客户端接入亚马逊云存储。首先,我们搞清楚一个问题。对于客户端来说,客户端只负责把本地的文件、图片、视频等上传到AWS服务器上,至于其实的事情,根本不是客户端该操心的。为什么文章开头会说这个,是因为AWS官方文档说明,以及官方的demo,看得我云里雾里,硬是研究了好几天,直想骂人。可能是我水平太低,反正接入个sdk花了我好几天时间。
翻看官方文档一看,全部都是说明,客户端怎么配置一大堆的东西,怎么设置后台,怎么设置bucket,怎么配置一大堆东西,然后再接入客户端代码的实现。如果按照demo或者文档的配置,你会发现接入到后面就没法继续实现了。配置的accessKey, secretKey,以及bucket,region都没法动态配置,全部需要写死在客户端。如果我们后台的aws迁移,或者其他修改等操作以后,都必须修改客户端配置的awsconfiguration.json(s3demo上是配置这个的) 那就会涉及到用户的版本更新,所以正确的思路一定是所有的配置在服务端实现,客户端通过获取服务端返回来的上传参数配置,去设置我们上传的设置。
下面是正式接入aws。后来我放弃了网上说明,按照我们其他存储sdk接入的方式作为参考,然后阅读aws源码,寻找合适的方法类。以下是官方标准的上传代码。通过分析官方的上传说明,来拆分我们的方法。
先获取一个TransferUtility对象。创建的时候,设置s3Client,以及awsConfiguration。 public TransferUtility getTransferUtility(Context context) { if (sTransferUtility =&#