Android中使用又拍云存储来上传文件(包括图片、音频和视频等)

资料:

        在又拍云存储上申请账号,然后购买一定的空间。(具体可上它的官网详细了解)

原理:

      又拍云存储说白了就是一个中介。客户端把所需要上传的东西传到又拍云端服务器,云端服务器在通知到我们自己创建的服务器,然后我们自己的服务器在和我们的客户端进行相应的交互。

运用以及过程中遇到的问题:

       1)ftprush工具。通过查看又拍的API我们可以通过搭建该工具,从后台看到我们上传的文件以及对应的文件目录。当然也可以通过拼接相应的参数,通过浏览器来查看对应的效果。

       2)多个数据罗列到一个列表里,然后每个数据里又包含多张图片或者音视频的夹杂。如图:

Android中使用又拍云存储来上传文件(包括图片、音频和视频等)_第1张图片

当我第一条数据里有5张图片,上传了3张,突然网络不好断网了或者上传时间太长网络超时了,就会导致上传中断。这个时候我们就需要考虑这几个情况:

1】我们是继续上传第一条未上传成功的图片?

2.】我们先不管第一条数据,去上传第二条或者第三条甚至其它全新的数据里的图片?

3】万一第二条也上在上传的过程中导致传输中断也上传失败了呢?

策略及解决方案:

        这时候我们就需要思考如何记录每次上传的张数以及成功了几张或者失败了几张。以它为标志,下次就从它这里开始上传。(我可能说的有点笼统,如图所示,我们把这些数据都放在一个ArrayList的集合里,每次往又拍上传图片失败的时候,在我们编写的函数里进行记录,把失败的张数以一个键值对的形式放在一个HashMap里。这样的话,我们就可以解答上述三个疑惑了。譬如:当我们操作第一种情况的时候,我们先去HashMap里去通过K值来判断对应的V值是否为空,如果不为空,那我们就可以接着上传刚刚未能上传成功的图片。再如:当我们操作第二种情况的时候,我们去HashMap里去查看,是否存在对应的K,如果不存在,我们就可以认定这是一条全新的数据,这样就不会和第一条未上传成功的数据有任何关联。大路朝天各走半边,谁也不爱碍谁的事儿了。第三种情况亦如此。)

你可能感兴趣的:(Android中使用又拍云存储来上传文件(包括图片、音频和视频等))