七牛Android SDK 上传功能整理

本文介绍如何使用七牛云官方提供的Android SDK进行文件上传操作,包括配置上传参数、解决Android 6.0及更高版本中不支持httpClient的问题,并通过示例代码展示表单上传的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


七牛官方安卓上传功能文档链接 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 ,地址如下


参考官网的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);  
}  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值