七牛云的简单实用(上传图片到云存储并拿到地址写入数据库)

来源:互联网 发布:nginx 1.8.0 域名和ip 编辑:程序博客网 时间:2024/06/16 23:21

最近项目要有修改头像的功能,图片是不能写进数据库,而只能写进图片的地址,这就要把图片传到云存储上,再返回一个地址写进数据库,下次读取数据库图片地址,加载图片。
本次项目用上了七牛云存储,就复习一下七牛云的简单用法(本次开发客户端用Android Studio开发,服务端用Eclipse开发):
1.依赖
Android Studio:compile 'com.qiniu:qiniu-android-sdk:7.2.2'
Eclipse:七牛云官网下SDK 的jar包;
这里写图片描述

2.1服务端相应代码:
拿到秘钥:
步骤:注册->建存储空间->个人面板->秘钥管理这里写图片描述

//七牛秘钥        String accessKey="3vsRBfibN9HZq8IE-ZVFl746TBLx0zb18s1Cx";        String secretKey="_ubCRKktpqRCaTpP-gZYlUd4_sv56CK_pObBC";//传给客户端token,其中abcdefklmn为空间名case "QINIUYUN":            Auth auth=Auth.create(accessKey, secretKey);            String token=auth.uploadToken("abcdefklmn");            pw.write(token);            System.out.println("token:"+token);            pw.close();            break;

2.2客户端请求(本工程采用xUtil3框架做网络请求):

//把图片传到服务端    private void setPicFromClient() {        RequestParams params = new RequestParams(url);        params.addQueryStringParameter("flag", "QINIUYUN");        x.http().get(params, new Callback.CommonCallback<String>() {            @Override            public void onSuccess(String result) {                //七牛云的请求方式                UploadManager manager = new UploadManager();                //new一个线程,继承七牛云的UpCompletionHandler                MyUpCompletionHandler handler = new MyUpCompletionHandler();                Date date = new Date();                String key = date.getTime() + mSaveUri.toString();                manager.put(file, key, result, handler, null);            }            @Override            public void onError(Throwable ex, boolean isOnCallback) {            }            @Override            public void onCancelled(CancelledException cex) {            }            @Override            public void onFinished() {            }        });    }    class MyUpCompletionHandler implements UpCompletionHandler {        //上传成功        @Override        public void complete(String key, ResponseInfo info, JSONObject response) {            //上传成功,返回一个key值,要存入数据库,必须要加上存储的测试域名            value=key1+key;            RequestParams params=new RequestParams(url);            params.addQueryStringParameter("flag","5");            params.addQueryStringParameter("id",id+"");            params.addQueryStringParameter("key",value);            x.http().get(params, new Callback.CommonCallback<String>() {                @Override                public void onSuccess(String result) {                }                @Override                public void onError(Throwable ex, boolean isOnCallback) {                }                @Override                public void onCancelled(CancelledException cex) {                }                @Override                public void onFinished() {                }            });        }    }

测试域名:
这里写图片描述

1 0
原创粉丝点击