Android使用7牛云存储

第一次使用这个云存储,话说7牛云存储大有来头!区别于国内外其他云存储,七牛自行研发的全分布式架构解决了其他云存储单一数据中心架构可能存在的风险,同时首创双向加速特性对数据上传下载均加速,使得数据访问速度较传统方案平均提升 50%以上。此外,镜像存储客户端直传断点续上传云端富媒体处理等七牛云存储独有的功能也大大提升了开发效率,最大程度减少了服务器资源浪费。

 

7牛云存储需要3个信息就可以上传图片了。

1,AK(AccessKey)

2,SK(SecretKey)

3,bucketName(应该就是二级域名)

 

进入账号设置-密钥可以找到如下信息:

 

JAVA服务器代码:

Config.ACCESS_KEY = "***************************************";
Config.SECRET_KEY = "***************************************";
Mac mac = new Mac(Config.ACCESS_KEY, Config.SECRET_KEY);
// 请确保该bucket已经存在
String bucketName = "iamchen";
PutPolicy putPolicy = new PutPolicy(bucketName);
String uptoken = putPolicy.token(mac);
PutExtra extra = new PutExtra();
String key = UUID.randomUUID().toString();
String localFile = tempfile.getAbsolutePath();
PutRet ret = IoApi.putFile(uptoken, key, localFile, extra);
return ret.getKey();//ret.getHash();

 

Android上传文件代码(先从web服务器得到token):

//若已经上传则文件名显示为:7d0fb768-cace-44c2-9704-29e170c447c9
//未上传为:/storage/sdcard0/RZproject/3e94c815-f2fb-48cc-9d1c-51be2ae245cf.jpg
if (!ViewUtil.isStrEmpty(listFile[i])) {// 如果有文件
    if (ViewUtil.isuploadedphoto(listFile[i])) {// 如果已上传,则没有特殊符号
        listSuccessName[i] = listFile[i];
    } else {
        listSuccessName[i] = null;
        imageCountToUpload++;
        extra.params = new HashMap<String, String>();
        extra.params.put("x:index", String.valueOf(i));
        extra.params.put("x:fileName", listFile[i]);
        //UploadImageAsyncTask
        //putFile(String uptoken, String key, File file, PutExtra extra, JSONObjectRet callback)    
        Log.i(TAG, "begin--->IO.putFile");
        File file = new File(listFile[i]);
        IO.putFile(OrderData.getTempToken(), key, file, extra, myJSONObjectRet);
    }
}

 

myJSONObjectRet是一个回调对象,处理云服务器返回来的结果(服务器保存图片后会返回一段json数据。json数据中有两个数据。一个是key,还有一个是hash)
JSONObjectRet myJSONObjectRet = new JSONObjectRet(){

    @Override
    public void onSuccess(JSONObject obj) {    

        String index = obj.optString("x:index", "");
        String name = obj.optString("x:fileName", "");
        String key = obj.optString("key", "");
        Log.i(TAG, "位置:" + index + ",文件名:" + name +",key:"+key);
        listSuccessName[Integer.valueOf(index)] = key;
        loadedimageCountUp++;
        if (loadedimageCountUp >= imageCountToUpload) {
            setClothesDetail();
        }
        Log.i(TAG, "end--->IO.putFile");
    }

    @Override
    public void onFailure(QiniuException ex) {
        hideProgressDialog();
    }

};

 

注意在使用之前应该导入相关的包。

下载地址:https://github.com/qiniu/android-sdk

 

转载于:https://www.cnblogs.com/chenjianxiang/p/3932914.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值