没什么好说的,千言万语都在代码中,亮剑看码:
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(".............."); } } }
相关推荐
在使用七牛云存储进行文件上传时,为了确保数据的安全性和防止非法操作,七牛引入了一种名为“Token”的验证机制。本文将详细介绍如何生成七牛的Token,以及它在上传过程中的作用。 首先,我们需要理解什么是七牛...
在Java编程中,工具类(Util Class)是一种常见的设计模式,通常包含一组静态方法,用于执行特定的操作或提供通用的功能。在这个"十二生肖和星座Java工具类"中,我们可以假设作者创建了一个Java类,该类提供了与计算...
封装了一些常用Java操作方法,便于重复开发利用. 另外希望身为Java牛牛的你们一起测试和完善,欢迎入群263641914 一起封装和完成常用的Java代码。 节约撸码时间以方便有更多的时间去把妹子~
这个“很牛的Java截图工具源码”提供了一种高效、易用的方法来实现这一功能。下面我们将详细探讨Java截图工具的实现原理以及相关技术知识点。 首先,Java截图的核心在于获取屏幕图像数据。在Java中,我们可以利用`...
其中,`TestFrame.java`、`JTFrame.java`和`Resize.java`可能是这个工具的主要类。`TestFrame`可能是一个测试窗口,用于展示截图功能;`JTFrame`可能自定义了Java的JFrame组件,扩展了原生窗口的功能;而`Resize....
1. **qiniu-java-sdk**: 这是七牛官方提供的Java SDK,包含了所有与七牛云存储交互所需的类库,如认证、上传、下载、管理等操作。 2. **httpclient**: 七牛SDK可能会依赖Apache HttpClient库,用于处理HTTP请求和...
LocalDateTime常用操作工具类,主要包括的工具如下: - LocalDateTime转为Date - Date转为LocalDateTime - LocalDateTime转为String(yyyy-MM-dd HH:mm:ss) - LocalDateTime转为String - String转为LocalDateTime -...
6. **Utils模块**:包含一些通用工具类,如日期处理、字符串编码解码等。 在实际开发中,引入七牛7.2.3上传jar包的步骤通常是: 1. **添加依赖**:如果你使用Maven,可以在pom.xml文件中添加七牛云的依赖项,或者...
在Java中,日期类是java.util包下的一个类,提供了日期和时间相关的操作。Date类有多个构造函数,可以使用不同的方式创建日期对象。例如,使用new Date()构造函数可以创建当前日期对象。 知识点二:阳历和农历的...
总之,【七牛文件上传_jar包】是开发者在Java环境中无缝接入七牛云存储服务的重要工具,通过它,你可以轻松实现文件的高效、安全上传,同时享受到七牛云提供的各种高级功能和服务。在实际开发中,务必参考七牛云的...
提取关于日期时间操作方法,形成工具类,提升开发效率
这个“七牛上传文件使用到的jar包”包含了七牛云服务的相关库,使得开发者能够在Java应用程序中实现与七牛云平台的无缝对接,进行文件的上传操作。 首先,要理解七牛云的API工作原理。七牛云提供RESTful API,通过...
3. **okio-1.6.0.jar**:Okio是OkHttp的一个依赖库,它提供了一套低级别的IO操作工具,包括缓冲区管理和流操作,优化了数据读写性能。Okio的设计目的是简化常见的I/O任务,如读取和写入文件、网络流以及内存中的数据...
《JAVA通用工具类——nariit-sgcc-common-1.0深入解析》 在软件开发过程中,为了提高代码的复用性和效率,开发者通常会创建一些工具类库,以供项目中频繁使用的功能调用。"nariit-sgcc-common-1.0"就是这样一个针对...
### 牛客网Java专项50题详解 #### 1. 构造函数与类的关系 - **构造函数省略**: 当我们定义了一个类但没有显式地编写构造函数时,默认情况下,Java编译器会自动为我们提供一个无参构造函数。如果省略构造函数,则在...
- **okio-1.6.0**: Okio是OkHttp的配套库,提供了一套高效的IO操作工具,优化了数据读写速度。 - **qiniu-java-sdk**: 这是七牛云的Java SDK主库,包含了所有与七牛云交互所需的类和接口。 在实际开发中,你需要将...
总的来说,"很牛的java反编译工具"是一个功能强大的软件,能够帮助开发者快速理解和探索Java字节码,无论它是单独的类文件还是整个项目或库。通过提供批量反编译和.jar支持,它简化了工作流程,使得源代码分析变得...
多线程和并发编程是Java的重要特性,书中有详细章节讲述线程的创建、同步、通信以及死锁等问题,还有Java并发工具类如Semaphore、CyclicBarrier、ExecutorService的使用。理解这些内容能够帮助开发者编写出高效且...
压缩包中的"七牛jdk1.6第三方包"可能包含了专门为JDK1.6版本设计的七牛云Java SDK,这些库文件包含了与七牛云服务交互所需的所有类和方法。开发者可以通过导入这些库,快速地在JDK1.6环境中集成七牛云服务。 总结...
综上所述,这个“史上最牛的Java分页技术”其实是一种基于SSH框架和Ajax的高效分页实现,它通过自定义的`PageSeparator`类进行核心计算,并结合Struts的表单处理机制,确保了分页功能的稳定性和用户友好性。...