七牛文件上传回调以及解析回调参数
来源:互联网 发布:淘宝网商城男裤 编辑:程序博客网 时间: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
- 七牛文件上传回调以及解析回调参数
- AliyunOSS 上传回调
- 发HTTP请求, 网络回调ModelCallback, 解析Json串创建相应Model, 再通过Controller传回Activity(展示)
- 七牛云存储之上传回调
- 七牛上传回调显示进度条方法。
- Handler异步消息处理以及activity跳转后的参数传回问题
- js 利用iframe和location.hash跨域解决办法,java图片上传回调JS函数跨域
- javaWeb图片上传回显
- 【jQuery】图片上传回显
- android使用接口回调把fragment把值传回到Activity
- Android中Volley的接口回调机制传回数据的示例
- Python Django进阶教程(七)(部署,ajax通信以及文件上存)
- 富文本编辑器图片上传回显,内容回显更新
- WKT文件解析 以及各个投影坐标的wkt参数查询
- 组图:神舟七号飞船传回舱外影像
- iOS 演示 Modal Segue 的使用,包括参数如何从呈现者传递到 ModalView 以及数据如何从 ModalView 传回呈现者(利用委托对象)
- Android中measure过程、WRAP_CONTENT详解以及xml布局文件解析流程浅析(上)
- Android中measure过程、WRAP_CONTENT详解以及xml布局文件解析流程浅析(上)
- gcc常用命令
- selenium--链接MySQL数据库并将数据写到数据库
- SQL优化
- JUC中线程池的使用
- java.util.UUID通用唯一识别码的介绍
- 七牛文件上传回调以及解析回调参数
- 最准确的单点登录SSO图示和讲解(有代码范例)|手把手教做单点登录(SSO)系列之二
- c++内联函数
- tensorflow各版本间踩过的坑
- struts2文件上传大小限制问题小结
- 重新学习js
- Bootstrap+jquerry开发网站首页
- Android 计时器的简单实现
- 多文件的Makefile模板