免费云存储工具类——七牛云(更改配置信息,直接使用)

Habiba ·
更新时间:2024-11-14
· 720 次阅读

云存储工具类——七牛云 第一步

导入相关依赖:

com.qiniu qiniu-java-sdk [7.2.0, 7.2.99] com.google.code.gson gson 2.8.2 第二步

写入需要的配置信息:
dns:你的云存储空间域名(生成之后会有一个临时域名)
在这里插入图片描述
accessKey:你的ak
secretKey:你的sk在这里插入图片描述在这里插入图片描述把这些配置信息写在一个小配置文件(XXX.properties)中,供工具类读取

dns=你的dns accessKey=你的ak secretKey=你的sk 第三步

导入我的工具类、代码如下:

package com.lbt.yingx_lbt.util; import com.google.gson.Gson; import com.qiniu.common.QiniuException; import com.qiniu.http.Response; import com.qiniu.storage.BucketManager; import com.qiniu.storage.Configuration; import com.qiniu.storage.Region; import com.qiniu.storage.UploadManager; import com.qiniu.storage.model.DefaultPutRet; import com.qiniu.util.Auth; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.io.InputStream; import java.util.Date; import java.util.HashMap; import java.util.Properties; public class QiNiuYunUtil { public static HashMap Information(){ HashMap map = new HashMap(); //读取小配置文件 Properties prop = new Properties(); //如果properties文件和某个java文件在同一目录下,可以如下读取配置文件: //如果出现空指针异常原因可能为:要把小配置文件放在resources目录下 InputStream inStream = QiNiuYunUtil.class.getClassLoader().getResourceAsStream("QiNiuyunProperties.properties"); try { prop.load(inStream);//properties文件 } catch (IOException e) { e.printStackTrace(); } String accessKey = prop.getProperty("accessKey"); String secretKey = prop.getProperty("secretKey"); String dns = prop.getProperty("dns"); String bucket = prop.getProperty("bucket"); map.put("accessKey",accessKey); map.put("secretKey",secretKey); map.put("dns",dns); map.put("bucket",bucket); return map; } //进行文件上唇 public static String Upload(MultipartFile file){ //获取配置文件信息 HashMap map = Information(); String accessKey = map.get("accessKey"); String secretKey = map.get("secretKey"); String dns = map.get("dns"); String bucket = map.get("bucket"); //你的域名 //1.向七牛云提交文件 String filename = file.getOriginalFilename(); String newName=+new Date().getTime()+"-"+filename; //将域名与文件名拼接,作为上数据库的图片或视频名 String name = dns+"/"+newName; //2.将文件转为字节数组 byte[] bytes=null; try { bytes = file.getBytes(); } catch (IOException e) { e.printStackTrace(); } //3.构造一个带指定Region对象的配置类 参数:指定的区域 华北 Configuration cfg = new Configuration(Region.region1()); //4....其他参数参考类注释 UploadManager uploadManager = new UploadManager(cfg); //5....生成上传凭证,然后准备上传 accessKey = "qSPGX1c7OYRRgNb2npbbPfm9tbcZ_VK8__1Rbs0C"; secretKey = "7lYjTpuzufhJWoEB9UWJZYKd2WDiif7orSGgnrE6"; bucket = "yingx-video1"; //存储空间的名字 //如果是Windows情况下,格式是 D:\\qiniu\\test.png //String localFilePath = "C:\\Users\\NANAN\\Desktop\\video\\人民的名义.mp4"; //文件本地路径 //6.默认不指定key的情况下,以文件内容的hash值作为文件名 String key = newName; //根据密钥去做授权 Auth auth = Auth.create(accessKey, secretKey); String upToken = auth.uploadToken(bucket); try { //上传 文件上传 文件字节数组 Response response = uploadManager.put(bytes, key, upToken); //解析上传成功的结果 DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class); System.out.println(putRet.key); //文件名 //System.out.println(putRet.hash); //件内容的hash值 //http://q5u1l78s3.bkt.clouddn.com/照片.jpg 网络路径 //http://q5u1l78s3.bkt.clouddn.com/人民的名义.mp4 } catch (QiniuException ex) { Response r = ex.response; System.err.println(r.toString()); try { System.err.println(r.bodyString()); } catch (QiniuException ex2) { //ignore } } return name; } //删除文件 //云存储中文件的名字 public static void delete(String key){ //获取小配置文件信息 HashMap map = Information(); //构造一个带指定 Region 对象的配置类 Configuration cfg = new Configuration(Region.region0()); //...其他参数参考类注释 String accessKey = map.get("accessKey"); //密钥:你的AK String secretKey = map.get("secretKey"); //密钥:你的SK String bucket = map.get("bucket"); //存储空间的名字 Auth auth = Auth.create(accessKey, secretKey); BucketManager bucketManager = new BucketManager(auth, cfg); try { bucketManager.delete(bucket, key); } catch (QiniuException ex) { //如果遇到异常,说明删除失败 System.err.println(ex.code()); System.err.println(ex.response.toString()); } } } 使用方法 //上传文件,两种方式,需要的参数不同 //MultipartFile cover:要上传的文件 //bucket:要上传的空间名称 //dns:空间域名 QiNiuYunUtil.Upload(cover,bucket,dns); //tring fileName:文件名,String filePath:文件路径,String bucket:上传的空间名称 //返回值为上传后的文件名 String name= QiNiuYunUtil.Upload(fileName,filePath,bucket); //删除文件 //String key:云存储中文件的名字 //String bucket:要上传的空间名称 QiNiuYunUtil.delete(key,bucket); 相关说明 关于 Region 对象和机房的关系如下:
机房 Region
华东 Region.region0() , Region.huadong()
华北 Region.region1() , Region.huabei()
华南 Region.region2() , Region.huanan()
北美 Region.regionNa0() , Region.beimei()
东南亚Region.regionAs0() , Region.xinjiapo()

作者:刘宝腾



工具类 工具 存储 云存储

需要 登录 后方可回复, 如果你还没有账号请 注册新账号