七牛文件上传回调以及解析回调参数

来源:互联网 发布:淘宝网商城男裤 编辑:程序博客网 时间:2024/06/10 17:15

可参考七牛官网文档:https://developer.qiniu.com/kodo/sdk/1239/java

实现以下功能要引入七牛的sdk

<!-- 七牛客户端组件包 --><dependency><groupId>com.qiniu</groupId><artifactId>qiniu-java-sdk</artifactId><version>[7.0.0, 7.0.99]</version></dependency>



这是上传的方法

private static void qiNiuUpLoad() {//华东Zone.zone0()//华北Zone.zone1()//华南Zone.zone2()//北美Zone.zoneNa0()// 根据自己的 存储区域 来决定 我是华北Config.zone = Zone.zone1();      UploadManager uploadManager = new UploadManager();    //...生成上传凭证,然后准备上传    String accessKey = "access key";    String secretKey = "secret key";    // 存储空间名称    String bucket = "bucket name";        //如果是Windows情况下,格式是 D:\\qiniu\\test.png    String localFilePath = "C:\\Users\\Administrator\\Desktop\\1613871.mkv";    //默认不指定key的情况下,以文件内容的hash值作为文件名    String key = "k1613871.mkv";        //回调地址      Auth auth = Auth.create(accessKey, secretKey);    StringMap putPolicy = new StringMap();    //回调的地址    putPolicy.put("callbackUrl", "http://域名/common/qiniu/upload/callback");    putPolicy.put("callbackBody", "filename=$(fname)&filesize=$(fsize)&mimeType=$(mimeType)");    putPolicy.put("callbackBodyType", "application/json");    long expireSeconds = 3600;    String upToken = auth.uploadToken(bucket, null, expireSeconds, putPolicy);    System.out.println(upToken);    try {        Response response = uploadManager.put(localFilePath, key, upToken);        //解析上传成功的结果        DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);        System.out.println(putRet.key);        System.out.println(putRet.hash);    } catch (QiniuException ex) {        Response r = ex.response;        System.err.println(r.toString());        try {            System.err.println(r.bodyString());        } catch (QiniuException ex2) {            //ignore        }    }}

接受回调的方法

/** * 七牛上传回调 * @param request * @param response * @return */@RequestMapping(value="/common/qiniu/upload/callback",method=RequestMethod.POST)public void qiNiuCallback1(HttpServletRequest request, HttpServletResponse response) throws CMSException {try { // 接收七牛回调过来的内容String line = "";BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream()));StringBuilder sb = new StringBuilder();while ((line = br.readLine()) != null) {sb.append(line);}// 设置返回给七牛的数据logger.info(sb.toString()); } catch (Exception e) {e.printStackTrace();} }


日志输出的结果 :filename="1613871.mkv"&filesize=41478350&mimeType="video/x-matroska"


提供一种解析思路

//上传回调参数解析    String stringName="filename='1613871.mkv'&filesize=41478350&mimeType='video/x-matroska'"; String[] split = stringName.split("&");for (String string : split) {int indexOf = string.indexOf("=");String key = string.substring(0, indexOf);String value = string.substring(indexOf+1, string.length()).replace("'", "");System.out.println("key:"+key +"====value:"+ value);}





0 0
原创粉丝点击