java上传视频到七牛云_java七牛云文件上传

package com.dtgy.youguoju.utils;

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 2017年6月6日 上午10:56:32

/

public class QiniuUtils {

private static final String ACCESS_KEY = "9Z2RnhG5TeABQOchlShvXj1apSeXpJnNZSm7IEp";

private static final String SECRET_KEY = "M_M3WEMWUybEoOTEPGeef2keYzL8KVvN_KorAhN";

/* 默认上传空间 /

private static final String BUCKET_NAME = "defaultpic";// 默认到其他类中

/* 空间默认域名 */

private static final String BUCKET_HOST_NAME = "";

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

* @throws

*/

public static List 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 list = new ArrayList();

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 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("..............");

}

}

/**

* 删除七牛上的文件

* @param path 数据库中文件的路径

* @param space 所存空间名称

*/

public boolean deleteImageFromQiNiu(String path, String space) {

if (!path.isEmpty()) {

String[] split = path.split(".com/");

if (split.length>=2) {

FileInfo findOneFile=null;

try {//查询云端是否有该文件

findOneFile = QiniuUtils.findOneFile(space,split[1]);

} catch (QiniuException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

if (findOneFile!=null) {//删除云端文件

try {

//.deleteFile(空间名, 文件名);

QiniuUtils.deleteFile(space, split[1]);

return true;

//结束返回成功

} catch (QiniuException e) {

// TODO Auto-generated catch block

e.printStackTrace();

//出现异常返回fase

return false;

}

}else {

//如果七牛中没有该图片则返回成功

return true;

}

}else {

//如果截取的数组小于2则是无效数据返回成功

return true;

}

}else {

//如果数据库中存储的问空则直接返回成功

return true;

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值