123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- package com.fdkankan.fyun.qiniu;
- import com.google.gson.Gson;
- import com.qiniu.cdn.CdnManager;
- import com.qiniu.cdn.CdnResult;
- import com.qiniu.common.QiniuException;
- import com.qiniu.http.Response;
- import com.qiniu.storage.BucketManager;
- import com.qiniu.storage.Configuration;
- import com.qiniu.storage.UploadManager;
- import com.qiniu.storage.model.DefaultPutRet;
- import com.qiniu.util.Auth;
- import com.qiniu.util.StringMap;
- import com.qiniu.util.UrlSafeBase64;
- import java.io.File;
- public class QiniuUpload {
- //删除文件
- public static void delete(String key) throws QiniuException{
- Configuration cfg = new Configuration(QiniuUtil.zone);
- Auth auth = Auth.create(QiniuUtil.accessKey, QiniuUtil.secretKey);
- BucketManager bucketManager = new BucketManager(auth, cfg);
- bucketManager.delete(QiniuUtil.bucket, key);
- }
- //刷新文件
- public static void refresh(String url) throws QiniuException{
- String [] urls = {url};
- Auth auth = Auth.create(QiniuUtil.accessKey, QiniuUtil.secretKey);
- CdnManager c = new CdnManager(auth);
- CdnResult.RefreshResult response = c.refreshUrls(urls);
- }
- /**
- * 上传单个文件到七牛云
- * @param key
- * @param localFilePath
- */
- public static boolean setFileToBucket(String key, String localFilePath){
- Configuration cfg = new Configuration(QiniuUtil.zone);
- Auth auth = Auth.create(QiniuUtil.accessKey, QiniuUtil.secretKey);
- UploadManager uploadManager = new UploadManager(cfg);
-
- String upToken = auth.uploadToken(QiniuUtil.bucket);
-
- 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);
- return true;
- } catch (QiniuException ex) {
- Response r = ex.response;
- System.err.println(r.toString());
- try {
- System.err.println(r.bodyString());
- } catch (QiniuException ex2) {
- }
- return false;
- }
- }
-
- /**
- * 上传本地目录下所有文件到七牛云上
- * @param remoteFolder
- * @param localFolderPath
- */
- public static void setFilesToBucket(String remoteFolder, String localFolderPath) {
- Configuration cfg = new Configuration(QiniuUtil.zone);
- Auth auth = Auth.create(QiniuUtil.accessKey, QiniuUtil.secretKey);
- UploadManager uploadManager = new UploadManager(cfg);
-
- File file = new File(localFolderPath);
- File[] files = file.listFiles();// 获取目录下的所有文件或文件夹
- if (files == null) {// 如果目录为空,直接退出
- return;
- }
- // 遍历,目录下的所有文件
- for (File f : files) {
- if (f.isFile()) {
- String key = f.getName();
- if (remoteFolder != null) {
- key = remoteFolder + key;
- }
- // 再上传文件
- String upToken = auth.uploadToken(QiniuUtil.bucket);
- try {
- Response res = uploadManager.put(f, key, upToken);
- System.out.println(res.bodyString());
- } catch (QiniuException e) {
- Response r = e.response;
- System.err.println(r.toString());
- try {
- System.err.println(r.bodyString());
- } catch (QiniuException ex2) {
- }
- }
- } else if (f.isDirectory()) {
- String key = f.getName() + "/";
- if (remoteFolder != null) {
- key = remoteFolder + key;
- }
- setFilesToBucket(key, f.getAbsolutePath());
- }
- }
- }
- /**
- * 测试七牛上传后,自动进行数据处理操作,并另存处理后的文件
- * @param domain 存储空间所对应的域名
- * @param file 上传文件
- */
- public static void testFops(String domain, File file) {
- //通过AK,SK创建Auth 对象
- Auth auth = Auth.create(QiniuUtil.accessKey, QiniuUtil.secretKey);
- Configuration cfg = new Configuration(QiniuUtil.zone);
- //上传对象
- UploadManager uploadMgr = new UploadManager(cfg);
- //私有队列
- String pipeline = "av-pipeline";
- //水印文字
- String wmText = UrlSafeBase64.encodeToString("Word For Test");
- //水印文字的颜色
- String wmFontColor = UrlSafeBase64.encodeToString("#FFFF00");
- //设置avthumb 接口
- StringBuffer ops = new StringBuffer("");
- ops.append("avthumb/mp4/wmText/" + wmText +"/wmGravityText/NorthEast/wmFontColor/" + wmFontColor);
- String saveAs = UrlSafeBase64.encodeToString(QiniuUtil.bucket + ":" + "new_" + file.getName());
- //通过管道符 "|" 拼接 saveas 接口, 保存 数据处理后的视频
- ops.append("|saveas/" + saveAs);
- //saveas 接口 需要签名 sign
- String sign = domain + "/" + file.getName() + "?" + ops.toString();
- String encodeSign = UrlSafeBase64.encodeToString(sign);
- ops.append("/sign/" + encodeSign);
- //指定 数据处理 的 上传策略, 当文件上传成功后,自定执行数据处理操作,即:ops 的接口,图片加水印,另存为 new_file.getName();
- StringMap putPolicy = new StringMap();
- putPolicy.put("persistentOps", ops.toString()) //数据处理接口及参数
- .put("persistentPipeline", pipeline); //私有数据处理队列
- //获取上传凭证, 包含上传策略
- String uploadToken = auth.uploadToken(QiniuUtil.bucket, file.getName(), 3600, putPolicy);
- try {
- //上传
- Response resp = uploadMgr.put(file, file.getName(), uploadToken);
- //查看结果
- System.out.println(resp.statusCode + ":" + resp.bodyString());
- } catch (QiniuException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- public static void main(String[] args) {
- QiniuUpload upload = new QiniuUpload();
- try {
- QiniuUpload.delete("head/13211064273/head.png");
- // QiniuUpload.refresh("http://scene3d.4dage.com/head/13211064273/head.png");
- } catch (QiniuException e) {
- e.printStackTrace();
- }
- }
- }
|