没什么好说的,千言万语都在代码中,亮剑看码:
package com.yida.framework.base.util.qiniu; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.apache.commons.io.IOUtils; import com.qiniu.common.QiniuException; import com.qiniu.http.Response; import com.qiniu.storage.BucketManager; import com.qiniu.storage.UploadManager; import com.qiniu.storage.model.DefaultPutRet; import com.qiniu.storage.model.FileInfo; import com.qiniu.storage.model.FileListing; import com.qiniu.util.Auth; /** * @ClassName: QiniuUtils * @Description: 七牛操作工具类 * @author Lanxiaowei(736031305@qq.com) * @date 2015年12月8日 上午10:56:32 * */ public class QiniuUtils { private static final String ACCESS_KEY = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; private static final String SECRET_KEY = "*******************************"; /**默认上传空间*/ private static final String BUCKET_NAME = "XXXXXXXXXXXXXXX"; /**空间默认域名*/ private static final String BUCKET_HOST_NAME = "http://xxxxxxxxxxxxxxxx.clouddn.com"; private static UploadManager uploadManager = new UploadManager(); private static int LIMIT_SIZE = 1000; /** * @Author: Lanxiaowei(736031305@qq.com) * @Title: listBucket * @Description: 返回七牛帐号的所有空间 * @param @return * @param @throws QiniuException * @return String[] * @throws */ public static String[] listBucket() throws QiniuException { Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY); BucketManager bucketManager = new BucketManager(auth); return bucketManager.buckets(); } /** * @Author: Lanxiaowei(736031305@qq.com) * @Title: listFileOfBucket * @Description: 获取指定空间下的文件列表 * @param bucketName 空间名称 * @param prefix 文件名前缀 * @param limit 每次迭代的长度限制,最大1000,推荐值 100[即一个批次从七牛拉多少条] * @param @return * @return List<FileInfo> * @throws */ public static List<FileInfo> listFileOfBucket(String bucketName,String prefix,int limit) { Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY); BucketManager bucketManager = new BucketManager(auth); BucketManager.FileListIterator it = bucketManager.createFileListIterator(bucketName, prefix, limit, null); List<FileInfo> list = new ArrayList<FileInfo>(); while (it.hasNext()) { FileInfo[] items = it.next(); if (null != items && items.length > 0) { list.addAll(Arrays.asList(items)); } } return list; } /** * @Author: Lanxiaowei(736031305@qq.com) * @Title: uploadFile * @Description: 七牛图片上传 * @param @param inputStream 待上传文件输入流 * @param @param bucketName 空间名称 * @param @param key 空间内文件的key * @param @param mimeType 文件的MIME类型,可选参数,不传入会自动判断 * @param @return * @param @throws IOException * @return String * @throws */ public static String uploadFile(InputStream inputStream,String bucketName,String key,String mimeType) throws IOException { Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY); String token = auth.uploadToken(bucketName); byte[] byteData = IOUtils.toByteArray(inputStream); Response response = uploadManager.put(byteData, key, token, null, mimeType, false); inputStream.close(); return response.bodyString(); } /** * @Author: Lanxiaowei(736031305@qq.com) * @Title: uploadFile * @Description: 七牛图片上传 * @param @param inputStream 待上传文件输入流 * @param @param bucketName 空间名称 * @param @param key 空间内文件的key * @param @return * @param @throws IOException * @return String * @throws */ public static String uploadFile(InputStream inputStream,String bucketName,String key) throws IOException { Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY); String token = auth.uploadToken(bucketName); byte[] byteData = IOUtils.toByteArray(inputStream); Response response = uploadManager.put(byteData, key, token, null, null, false); inputStream.close(); return response.bodyString(); } /** * @Author: Lanxiaowei(736031305@qq.com) * @Title: uploadFile * @Description: 七牛图片上传 * @param filePath 待上传文件的硬盘路径 * @param fileName 待上传文件的文件名 * @param bucketName 空间名称 * @param key 空间内文件的key * @param @return * @param @throws IOException * @return String * @throws */ public static String uploadFile(String filePath,String fileName,String bucketName,String key) throws IOException { Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY); String token = auth.uploadToken(bucketName); InputStream is = new FileInputStream(new File(filePath + fileName)); byte[] byteData = IOUtils.toByteArray(is); Response response = uploadManager.put(byteData, (key == null || "".equals(key))? fileName : key, token); is.close(); return response.bodyString(); } /** * @Author: Lanxiaowei(736031305@qq.com) * @Title: uploadFile * @Description: 七牛图片上传[若没有指定文件的key,则默认将fileName参数作为文件的key] * @param filePath 待上传文件的硬盘路径 * @param fileName 待上传文件的文件名 * @param bucketName 空间名称 * @param @return * @param @throws IOException * @return String * @throws */ public static String uploadFile(String filePath,String fileName,String bucketName) throws IOException { Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY); String token = auth.uploadToken(bucketName); InputStream is = new FileInputStream(new File(filePath + fileName)); byte[] byteData = IOUtils.toByteArray(is); Response response = uploadManager.put(byteData, fileName, token); is.close(); return response.bodyString(); } /** * @throws QiniuException * @Author: Lanxiaowei(736031305@qq.com) * @Title: fetchToBucket * @Description: 提取网络资源并上传到七牛空间里 * @param url 网络上一个资源文件的URL * @param bucketName 空间名称 * @param key 空间内文件的key[唯一的] * @param @return * @return String * @throws */ public static String fetchToBucket(String url,String bucketName,String key) throws QiniuException { Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY); BucketManager bucketManager = new BucketManager(auth); DefaultPutRet putret = bucketManager.fetch(url, bucketName, key); return putret.key; } /** * @Author: Lanxiaowei(736031305@qq.com) * @Title: fetchToBucket * @Description: 提取网络资源并上传到七牛空间里,不指定key,则默认使用url作为文件的key * @param url * @param bucketName * @param @return * @param @throws QiniuException * @return String * @throws */ public static String fetchToBucket(String url,String bucketName) throws QiniuException { Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY); BucketManager bucketManager = new BucketManager(auth); DefaultPutRet putret = bucketManager.fetch(url, bucketName); return putret.key; } /** * @throws QiniuException * @Author: Lanxiaowei(736031305@qq.com) * @Title: copyFile * @Description: 七牛空间内文件复制 * @param bucket 源空间名称 * @param key 源空间里文件的key(唯一的) * @param targetBucket 目标空间 * @param targetKey 目标空间里文件的key(唯一的) * @return void * @throws */ public static void copyFile(String bucket, String key, String targetBucket, String targetKey) throws QiniuException { Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY); BucketManager bucketManager = new BucketManager(auth); bucketManager.copy(bucket, key, targetBucket, targetKey); } /** * @Author: Lanxiaowei(736031305@qq.com) * @Title: moveFile * @Description: 七牛空间内文件剪切 * @param bucket 源空间名称 * @param key 源空间里文件的key(唯一的) * @param targetBucket 目标空间 * @param targetKey 目标空间里文件的key(唯一的) * @param @throws QiniuException * @return void * @throws */ public static void moveFile(String bucket, String key, String targetBucket, String targetKey) throws QiniuException { Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY); BucketManager bucketManager = new BucketManager(auth); bucketManager.move(bucket, key, targetBucket, targetKey); } /** * @Author: Lanxiaowei(736031305@qq.com) * @Title: renameFile * @Description: 七牛空间内文件重命名 * @param bucket * @param key * @param targetKey * @param @throws QiniuException * @return void * @throws */ public static void renameFile(String bucket, String key, String targetKey) throws QiniuException { Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY); BucketManager bucketManager = new BucketManager(auth); bucketManager.rename(bucket, key, targetKey); } /** * @Author: Lanxiaowei(736031305@qq.com) * @Title: deleteFile * @Description: 七牛空间内文件删除 * @param bucket 空间名称 * @param key 空间内文件的key[唯一的] * @param @throws QiniuException * @return void * @throws */ public static void deleteFile(String bucket, String key) throws QiniuException { Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY); BucketManager bucketManager = new BucketManager(auth); bucketManager.delete(bucket, key); } /** * @Author: Lanxiaowei(736031305@qq.com) * @Title: findFiles * @Description: 返回指定空间下的所有文件信息 * @param @param bucketName 空间名称 * @param @param prefix 文件key的前缀 * @param @param limit 批量提取的最大数目 * @param @return * @param @throws QiniuException * @return FileInfo[] * @throws */ public static FileInfo[] findFiles(String bucketName,String prefix,int limit) throws QiniuException { Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY); BucketManager bucketManager = new BucketManager(auth); FileListing listing = bucketManager.listFiles(bucketName, prefix, null, limit, null); if(listing == null || listing.items == null || listing.items.length <= 0) { return null; } return listing.items; } /** * @Author: Lanxiaowei(736031305@qq.com) * @Title: findFiles * @Description: 返回指定空间下的所有文件信息 * @param @param bucketName 空间名称 * @param @param prefix 文件key的前缀 * @param @return * @param @throws QiniuException * @return FileInfo[] * @throws */ public static FileInfo[] findFiles(String bucketName,String prefix) throws QiniuException { Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY); BucketManager bucketManager = new BucketManager(auth); FileListing listing = bucketManager.listFiles(bucketName, prefix, null, LIMIT_SIZE, null); if(listing == null || listing.items == null || listing.items.length <= 0) { return null; } return listing.items; } /** * @Author: Lanxiaowei(736031305@qq.com) * @Title: findFiles * @Description: 返回指定空间下的所有文件信息 * @param @param bucketName * @param @param key * @param @return * @param @throws QiniuException * @return FileInfo[] * @throws */ public static FileInfo[] findFiles(String bucketName) throws QiniuException { Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY); BucketManager bucketManager = new BucketManager(auth); FileListing listing = bucketManager.listFiles(bucketName, null, null, LIMIT_SIZE, null); if(listing == null || listing.items == null || listing.items.length <= 0) { return null; } return listing.items; } /** * @Author: Lanxiaowei(736031305@qq.com) * @Title: findOneFile * @Description: 返回指定空间下的某个文件 * @param @param bucketName * @param @param key * @param @param limit * @param @return * @param @throws QiniuException * @return FileInfo * @throws */ public static FileInfo findOneFile(String bucketName,String key,int limit) throws QiniuException { Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY); BucketManager bucketManager = new BucketManager(auth); FileListing listing = bucketManager.listFiles(bucketName, key, null, limit, null); if(listing == null || listing.items == null || listing.items.length <= 0) { return null; } return (listing.items)[0]; } /** * @Author: Lanxiaowei(736031305@qq.com) * @Title: findOneFile * @Description: 返回指定空间下的某个文件(重载) * @param @param bucketName * @param @param key * @param @return * @param @throws QiniuException * @return FileInfo * @throws */ public static FileInfo findOneFile(String bucketName,String key) throws QiniuException { Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY); BucketManager bucketManager = new BucketManager(auth); FileListing listing = bucketManager.listFiles(bucketName, key, null, LIMIT_SIZE, null); if(listing == null || listing.items == null || listing.items.length <= 0) { return null; } return (listing.items)[0]; } /** * @Author: Lanxiaowei(736031305@qq.com) * @Title: getFileAccessUrl * @Description: 返回七牛空间内指定文件的访问URL * @param @param key * @param @return * @param @throws QiniuException * @return String * @throws */ public static String getFileAccessUrl(String key) throws QiniuException { return BUCKET_HOST_NAME + "/" + key; } public static void main(String[] args) throws IOException { //uploadFile("C:/test.jpg"); /*String[] buckets = listBucket(); for(String bucket : buckets) { System.out.println(bucket); }*/ /*List<FileInfo> list = listFileOfBucket(BUCKET_NAME, null, 1000); for(FileInfo fileInfo : list) { System.out.println("key:" + fileInfo.key); System.out.println("hash:" + fileInfo.hash); System.out.println("................"); }*/ //copyFile(BUCKET_NAME, "images-test", BUCKET_NAME, "images-test-1111"); //renameFile(BUCKET_NAME, "images-test-1111", "images-test-2222.jpg"); //deleteFile(BUCKET_NAME, "images-test-2222.jpg"); //fetchToBucket("http://www.nanrenwo.net/uploads/allimg/121026/14-1210261JJD03.jpg", BUCKET_NAME,"1111111111111111.jpg"); FileInfo[] fileInfos = findFiles(BUCKET_NAME, "10", LIMIT_SIZE); for(FileInfo fileInfo : fileInfos) { System.out.println(fileInfo.key); System.out.println(fileInfo.hash); System.out.println(".............."); } } }
相关推荐
LocalDateTime常用操作工具类,主要包括的工具如下: - LocalDateTime转为Date - Date转为LocalDateTime - LocalDateTime转为String(yyyy-MM-dd HH:mm:ss) - LocalDateTime转为String - String转为LocalDateTime -...
封装了一些常用Java操作方法,便于重复开发利用. 另外希望身为Java牛牛的你们一起测试和完善,欢迎入群263641914 一起封装和完成常用的Java代码。 节约撸码时间以方便有更多的时间去把妹子~
提取关于日期时间操作方法,形成工具类,提升开发效率
Java版精华区 含java jsp及js等精华帖子合集 适合收藏 查询 <br>序号 精华区主题 -------------------------------- 1. [目录]Java教程 1. [目录]Java语言教程 2. [目录]来自java的传说...
《牛奶配送管理系统专业版》与《牛奶配送管理系统》区别主要为:专业版配送方式多样化。分为正常配送、循环配送、隔天配送、工作日配送等方式。 《牛奶配送管理系统专业版》是一款协助各订奶点、高校送奶站、社区送...
到处运行(Write Once, Run Anywhere)”,这意味着开发者可以使用Java编写应用程序,并在支持Java的任何平台上无需重新编译即可运行,这得益于其独特的跨平台性,通过Java虚拟机(JVM)实现不同操作系统上的兼容。...
一共包括了java内存模型、并发基础、锁、并发工具类、java并发编程实战、优化、阻塞队列、原子操作、并发集合、线程池、线程基础、自定义并发类等13个方面的内容。 学习并发编程一张图就搞定了。
Java Web编程宝典-十年典藏版.pdf 是PDF电子书,不是源码。共分2个包。 《Java Web编程宝典(十年典藏版)》是一本集技能、范例、项目和应用为一体的学习手册,书中介绍了应用Java Web进行程序开发的各种技术、技巧。...
类的成员变量与方法、构造方法 在程序中 经常要对时间进行操作 但是并没有时间类型的数据。那么 我们可以自己实现 一个时间类 来满足程序中的需要。 定义名为MyTime的类 其中应有三个整型成员 时 hour 分 minute 秒 ...
类的成员变量与方法、构造方法 在程序中 经常要对时间进行操作 但是并没有时间类型的数据。那么 我们可以自己实现 一个时间类 来满足程序中的需要。 定义名为MyTime的类 其中应有三个整型成员 时 hour 分 minute 秒 ...
java简易版开心农场源码 20180320 最近集中将代码迁移到github,顺便将blog也逐步迁移过来,平时较忙,除了感觉有些创新的,写的文章也很少 国内git带宽怎么这么低啊,图片都显示不粗来~~~ 20180410 今天听闻Android...
第81节操作树栈指令00:03:27分钟 | 第82节控制转移指令00:11:58分钟 | 第83节方法调用和返回指令00:06:37分钟 | 第84节异常处理指令00:09:44分钟 | 第85节同步指令00:07:34分钟 | 第86节类加载机制概述00:07:26...
│ 任务006:安装Java、安装显卡驱动、安装网卡补丁、并发线程限制、电源优化.mp4 │ 任务007:.mp4 │ 任务008:.mp4 │ ├─第4章 实验环境 │ 任务009:实验环境.mp4 │ ├─章 基本工具 │ 任务010:基本工具-...
项目总结 (牛客网学习)头条资讯,包含登录注册,添加资讯,上传图片,评论,点赞,站内信,使用技术:前端使用模版FreeMarker,后台:...工具类,与业务无关常用的工具类(静态) intercepter 拦截器 configura
第七版》,重点内容会在标题后面加 *。 整理自《图解 HTTP》 操作系统 :laptop: 整理自《现代操作系统》和《计算机操作系统》 整理自《鸟哥的 Linux 私房菜》 数据结构与算法 :pencil: 整理自《算法 第四版》 《剑指...
第七版》,重点内容会在标题后面加 *。 整理自《图解 HTTP》 操作系统 :laptop: 整理自《现代操作系统》和《计算机操作系统》 整理自《鸟哥的 Linux 私房菜》 数据结构与算法 :pencil: 整理自《算法 第四版》 《剑指...
JVM是Java知识体系中的重要部分,对JVM底层的了解是每一位Java程序员深入Java技术领域的重要因素。本课程试图通过简单易懂的方式,系统的深入讲解JVM相关知识。包括JVM执行过程、虚拟机类加载机制、运行时数据区、GC...
第七版》与《计算机网络 自顶向下方法》 整理自《图解 HTTP》 整理自《Unix 网络编程》 面向对象 :woman_and_man_holding_hands: 整理自《Head First 设计模式》与《设计模式 可复用面向对象软件的基础》 面向对象三...
修改扩展界面支持库一,添加“工具条.置标题()”方法。 13. 修改高级表格支持库在表格空白处(所有单元格之外)单击鼠标导致当前光标处单元格自动进入编辑状态的BUG。 14. 修改扩展界面支持库一,为“超级列表框...