Jfinal的七牛云存储插件:qiniuPlugin for jfinal.
2019独角兽企业重金招聘Python工程师标准>>>
不多说 直接贴代码,使用开源,回馈开源。这部分是来之于爱睦家商城(www.imujia.com)的部分源代码。七牛sdk不支持分页获取 资源信息,鄙视!!
插件:
QiniuPlugin.java
package com.imujia.server.plugin.qiniu;import com.jfinal.plugin.IPlugin;/*** * @author michael QQ&微信:198819880* 爱睦家商城 www.imujia.com* */
public class QiniuPlugin implements IPlugin {private String propFile = "qiniu.properties";public QiniuPlugin() {}public QiniuPlugin(String propFile) {this.propFile = propFile;}@Overridepublic boolean start() {QiniuKit.init(new QiniuConfig(propFile));return true;}@Overridepublic boolean stop() {return true;}}
QiniuConfig.java
package com.imujia.server.plugin.qiniu;import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;import org.apache.log4j.Logger;
import org.json.JSONException;import com.qiniu.api.auth.AuthException;
import com.qiniu.api.auth.digest.Mac;
import com.qiniu.api.rs.PutPolicy;
import com.qiniu.api.rs.RSClient;
import com.qiniu.api.rsf.RSFClient;/*** * @author michael QQ&微信:198819880* 爱睦家商城 www.imujia.com* */
public class QiniuConfig {private static final Logger logger = Logger.getLogger(QiniuConfig.class);private String ak;private String sk;public QiniuConfig(String propertiesFile) {Properties properties = new Properties();InputStream is = QiniuConfig.class.getClassLoader().getResourceAsStream(propertiesFile);try {properties.load(is);} catch (IOException e) {logger.error("QiniuConfig", e);}ak = properties.getProperty("ak");sk = properties.getProperty("sk");}public String getAk() {return ak;}public void setAk(String ak) {this.ak = ak;}public String getSk() {return sk;}public void setSk(String sk) {this.sk = sk;}public String getToken(String bucketName){Mac mac = new Mac(ak, sk);PutPolicy putPolicy = new PutPolicy(bucketName);try {return putPolicy.token(mac);} catch (JSONException e) {logger.error("qiniu config get token", e);} catch (AuthException e) {logger.error("qiniu config get token", e);}return null;}public RSFClient getRSFClient(){Mac mac = new Mac(ak, sk);RSFClient client = new RSFClient(mac);return client;}public RSClient getRSClient(){Mac mac = new Mac(ak, sk);RSClient client = new RSClient(mac);return client;}}
QiniuKit.java
package com.imujia.server.plugin.qiniu;import java.io.File;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;import com.qiniu.api.io.IoApi;
import com.qiniu.api.io.PutExtra;
import com.qiniu.api.io.PutRet;
import com.qiniu.api.rs.RSClient;
import com.qiniu.api.rsf.ListItem;
import com.qiniu.api.rsf.ListPrefixRet;
import com.qiniu.api.rsf.RSFClient;/*** * @author michael QQ&微信:198819880* 爱睦家商城 www.imujia.com* */
public class QiniuKit {static QiniuConfig mConfig;static void init(QiniuConfig config){mConfig = config;}public static PutRet put(String bucketName,String filePath,InputStream is){String token = mConfig.getToken(bucketName);return IoApi.Put(token, filePath, is, new PutExtra());}public static PutRet put(String bucketName,String filePath,File file){String token = mConfig.getToken(bucketName);return IoApi.putFile(token, filePath, file, new PutExtra());}public static List<ListItem> list(String bucketName) {return list(bucketName,0);}public static List<ListItem> list(String bucketName,int count) {return list(bucketName, "*", count);}public static List<ListItem> list(String bucketName,String directoryPath) {return list(bucketName, directoryPath, 0);}public static List<ListItem> list(String bucketName,String directoryPath,int count) {if(directoryPath == null){directoryPath = "*";}if(count == 0){count = Integer.MAX_VALUE;}RSFClient client = mConfig.getRSFClient();ListPrefixRet list = client.listPrifix(bucketName, directoryPath, "", count);if(list == null) return null;List<ListItem> items = new ArrayList<ListItem>();items.addAll(list.results);return items ;}public static void remove(String bucketName, String filePath){RSClient client = mConfig.getRSClient();client.delete(bucketName, filePath);}}
需要到的jar包有:
httpclient-4.3.6.jar
httpcore-4.3.3.jar
httpmime-4.3.6.jar
qiniu-java-sdk-6.1.7.1.jar
没有jar包的联系我微信我发给你,maven的自己配置啦
使用方法:
1、src目录下添加配置文件qiniu.properties ,内容如下
ak = your qiniu ak
sk = your qiniu sk
2、在jfinal的配置类的
configPlugin方法里添加QiniuPlugin
3、配置好后,如下使用:
QiniuKit.put(bucketName, filePathAndName, file);
4、完毕。
海哥个人QQ&微信号:198819880 ,欢迎交流。
转载于:https://my.oschina.net/yangfuhai/blog/353040
Jfinal的七牛云存储插件:qiniuPlugin for jfinal.相关推荐
- PbootCms阿里云OSS插件和七牛云存储插件
特别注意事项 URL请填写全地址,如下图是阿里云OSS提供的Bucket域名,请填写完整这个域名. 插件介绍 增加图片上传到七牛云和阿里云OSS,可选择启用. 图片上传.编辑器上传图片均已接入云存储. ...
- Kindeditor上传图片到七牛云存储插件(PHP版)
由于工作需要,要使用第三方存储作为图床,发现七牛云挺不错,又可以免费使用10G的空间,决定先试试. 项目中使用的是Kindeditor作为网页编辑器的,七牛云的插件里没有现成的Kindeditor的插 ...
- 【宝塔面板建站】05. 七牛云存储使用教程 免费备份10G数据(保姆级图文)
目录 实现效果 注册并实名一个七牛云帐号 配置七牛云存储空间 新建对象存储空间 域名管理 解析域名得到CNAME 检查加速域名配置是否成功 获取七牛云密钥 得到2个密钥 宝塔面板配置七牛云 安装七牛云 ...
- Maven仓库搭建(二):GitHub、又拍云、七牛云存储
转载自:http://blog.csdn.net/xiao__gui/article/details/52640280 在上一篇博文中,主要介绍了Maven仓库搭建原理,除了Nexus外,随意使用一个 ...
- fatal error lnk1120: 1 个无法解析的外部命令_3月1日七牛云存储割韭菜的应对方法...
前言 早上起来看邮件,看到一封被七牛云割韭菜的公告: 内心冰冰凉,不过大家都要吃饭的嘛总不能一直免费下去.所以来研究一下对于我们这种穷人应该如何应对. 一.七牛CDN加速流程 主要流程分析 1.用户通 ...
- 添加七牛云存储_3月1日七牛云存储割韭菜的应对方法
前言 早上起来看邮件,看到一封被七牛云割韭菜的公告: 内心冰冰凉,不过大家都要吃饭的嘛总不能一直免费下去.所以来研究一下对于我们这种穷人应该如何应对. 一.七牛CDN加速流程 主要流程分析 1.用户通 ...
- 【微信小程序控制硬件⑥ 进阶篇】服务器如何集成七牛云存储SDK,把用户自定义设备图片存储在第三方服务器!
本博文由热爱分享热爱技术的半颗心脏原创,非官方人员.非组织名义编写,博文如有不对或侵犯您的权益,请及时留言,第一时间纠正! [微信小程序控制硬件①] 全网首发,借助 emq 消息服务器带你如何搭建微信 ...
- 青牛融合cdn_详解七牛云存储以及融合CDN加速
对于网站上的资源,比如图片,音视频,以及CSS.JS等静态文件可以使用融合CDN加速,提高页面访问速度与资源加载速度. 同样是对网站做加速,但根据需求一般分为两种情况: 情景一:同时使用七牛云的加速服 ...
- 图片存储方案-七牛云存储
1.引语 在实际开发中,我们会有很多处理不同功能的服务器.例如: 应用服务器:负责部署我们的应用 数据库服务器:运行我们的数据库 文件服务器:负责存储用户上传文件的服务器 分服务器处理的目的是让服务器 ...
- ueditor与七牛云存储结合
2019独角兽企业重金招聘Python工程师标准>>> 摘要: ueditor与七牛云存储结合,主要是表单api. ueditor上传图片到七牛云存储 ueditor结合七牛传图片 ...
最新文章
- 最长上升子序列之基础
- python程序官方网站-IO编程
- html5音频文件生成波形图代码,HTML5/D3.js 可视音频波形柱状图
- C mysql批量写入_使用JDBC在MySQL数据库中快速批量插入数据
- android中常见的回调模式
- Ubuntu 16.04 64位安装YouCompleteMe
- 软件工程概论--课后作业1
- 使用DaemonSet+Taint/Tolerations+NodeSelector部署Nginx Ingress Controller
- Android C++ OpenGL教程课程总结
- 黑苹果 macos 教程
- 云基础架构|部署分类|IaaS|PaaS|SaaS——浅析云计算架构
- eclipse将安卓项目commit至github本地仓库后,项目bin文件夹下不生成apk且运行报错
- 无线移动通信技术快速发展历程和趋向(转)
- MFC应用程序中嵌入一个谷歌cef浏览器
- Ubuntu 18.04 桌面卡死
- 网络安全中的NISP-SO安全运维工程师都需要那些工具?
- Steam账号注册--流程
- 微信自定义菜单使用特殊字符出现的问题
- PLY格式介绍与读取
- 中职计算机专业英语说课稿,中职英语说课稿范文
热门文章
- 输入法分类总结与优缺点
- paip.命令行执行js
- paip..net代码生成器使用总结
- 失范的数字货币量化市场:积弊成疾,洗牌将至 |链捕手
- 着力财富管理市场产品全覆盖 基金公司争设销售子公司
- (转)孙正义:数字资产会成为人类最大的资产
- 机器学习笔记(三十):基尼系数、CART
- 【优化算法】社会群体优化算法(SGO)【含Matlab源码 1449期】
- 【语音隐写】基于matlab GUI DWT音频数字水印(带语音播报)【含Matlab源码 711期】
- 【房价预测】基于matlab Elman神经网络开盘价预测【含Matlab源码 708期】