七牛Android SDK 上传功能整理

来源:互联网 发布:打谱软件手机版 编辑:程序博客网 时间:2024/05/26 12:07


七牛官方安卓上传功能文档链接 http://developer.qiniu.com/docs/v6/sdk/android-sdk.html#upload

我们可以直接从git上下载library工程,也可以直接导入mave或者下载jar包。此处,我们导入jar包,同时下载了library的源码包,library包提供了单元测试工具,可以让我们对一些方法有个直观的认识。下图为测试工程目录,demo是我们的测试工程。

导入工程时我们要注意,由于目前Android6.0已经不对httpClient支持,导致我们的工程可能会有找不到类的情况,我们可以下载httpclient-4.4.1.1.jar ,地址如下
http://mvnrepository.com/artifact/cz.msebera.android/httpclient/4.4.1.1
参考http://segmentfault.com/q/1010000003852205


参考官网的API文档建立一个表单提交

代码如下:

/**  * 初始化上传参数  */  private void init(){        Recorder recorder = new Recorder(){          @Override          public void set(String s, byte[] bytes) {          }          @Override          public byte[] get(String s) {              return new byte[0];          }          @Override          public void del(String s) {          }      };        //上传配置      Configuration config = new Configuration.Builder()              .chunkSize(256 * 1024)  //分片上传时,每片的大小。 默认 256K              .putThreshhold(512 * 1024)  // 启用分片上传阀值。默认 512K              .connectTimeout(10) // 链接超时。默认 10秒              .responseTimeout(60) // 服务器响应超时。默认 60秒              .recorder(recorder)  // recorder 分片上传时,已上传片记录器。默认 null              .recorder(recorder, null)  // keyGen 分片上传时,生成标识符,用于片记录器区分是那个文件的上传记录              .zone(Zone.zone0) // 设置区域,指定不同区域的上传域名、备用域名、备用IP。默认 Zone.zone0              .build();      // 重用 uploadManager。一般地,只需要创建一个 uploadManager 对象      mUploadManager = new UploadManager(config);  }    /***  * 表单上传  */  private void upload(){      // 重用 uploadManager。一般地,只需要创建一个 uploadManager 对象      UploadManager uploadManager = new UploadManager();      //data = <File对象、或 文件路径、或 字节数组>      String data = FILE_SAVEPATH_UPLOAD + "upload.jpg";    //FILE_SAVEPATH_UPLOAD路径下的 upload.jpg      String key = "my_upload.jpg";                            //在七牛上显示的名字      String token = mToken;                                    //上传token      uploadManager.put(data, key, token,              new UpCompletionHandler() {                  @Override                  public void complete(String key, ResponseInfo info, JSONObject res) {                      //  res 包含hash、key等信息,具体字段取决于上传策略的设置。                      Log.i("qiniu", key + ",\r\n " + info + ",\r\n " + res);                        Toast.makeText(MainActivity.this, "upload success !!!", Toast.LENGTH_SHORT).show();                  }              }, null);  }  


0 0
原创粉丝点击