当前位置: 首页 > news >正文

七牛云文件存储

参考

七牛云官方文档

Element-ui+七牛云 存储文件-快速上手

准备

创建空间

在这里插入图片描述
在这里插入图片描述

上传文件并访问

在此处点击上传文件,选择文件,上传完成后
在这里插入图片描述在这里插入图片描述

创建密钥

在这里插入图片描述

开发文档

点击文档-开发者中心,进入开发文档
在这里插入图片描述

基本使用

引入依赖

<dependency><groupId>com.qiniu</groupId><artifactId>qiniu-java-sdk</artifactId><version>7.13.1</version>
</dependency><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.5</version><scope>compile</scope>
</dependency>
<dependency><groupId>com.qiniu</groupId><artifactId>happy-dns-java</artifactId><version>0.1.6</version><scope>test</scope>
</dependency>
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope>
</dependency>

上传文件

@Test
public void testUploadQiniu() {//构造一个带指定 Region 对象的配置类Configuration cfg = new Configuration(Region.huanan()); // 指定区域cfg.resumableUploadAPIVersion = Configuration.ResumableUploadAPIVersion.V2;// 指定分片上传版本//...其他参数参考类注释UploadManager uploadManager = new UploadManager(cfg);//...生成上传凭证,然后准备上传String accessKey = "~~~";String secretKey = "~~~";String bucket = "zzhua-space";//默认不指定key的情况下,以文件内容的hash值作为文件名String key = "20240826/naughty.gif"; // 文件名try {// byte[] uploadBytes = "hello qiniu cloud".getBytes("utf-8");String filePath = "C:\\Users\\zzhua195\\Desktop\\naughty.gif";File file = new File(filePath);Auth auth = Auth.create(accessKey, secretKey);String upToken = auth.uploadToken(bucket);byte[] uploadBytes = StreamUtils.copyToByteArray(new FileInputStream(file));Response response = uploadManager.put(uploadBytes, key, upToken);//解析上传成功的结果DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);System.out.println(putRet.key);System.out.println(putRet.hash);// 访问路径为: {外链域名}/20240826/naughty.gif} catch (Exception ex) {//ignoreSystem.out.println("发生错误" + ex);}}

由于是公有空间,所以能直接访问
在这里插入图片描述

下载文件

@Testvoid testPublicDownloadQiniu() throws Exception {String fileName = "soft-dev.png";// domainOfBucket 中的域名为用户 bucket 绑定的下载域名,下面域名仅为示例,不可使用String domainOfBucket = "sit9jits9.hn-bkt.clouddn.com";String encodedFileName = URLEncoder.encode(fileName, "utf-8").replace("+", "%20");String finalUrl = String.format("%s/%s", domainOfBucket, encodedFileName);// 示例: sit9jits9.hn-bkt.clouddn.com/20240826%2Fnaughty.gifSystem.out.println(finalUrl);// domain   用户 bucket 绑定的下载域名 eg: mock.qiniu.com【必须】// useHttps 是否使用 https【必须】// key      下载资源在七牛云存储的 key【必须】DownloadUrl url = new DownloadUrl(domainOfBucket, false, fileName);/*url.setAttname(attname) // 配置 attname.setFop(fop) // 配置 fop.setStyle(style, styleSeparator, styleParam) // 配置 style*/String urlString = url.buildURL();// 示例: http://sit9jits9.hn-bkt.clouddn.com/20240826/naughty.gifSystem.out.println(urlString);}@Testvoid testPrivateDownloadQiniu() throws Exception {String fileName = "soft-dev.png";String domainOfBucket = "sit9jits9.hn-bkt.clouddn.com";String encodedFileName = URLEncoder.encode(fileName, "utf-8").replace("+", "%20");String publicUrl = String.format("%s/%s", domainOfBucket, encodedFileName);String accessKey = "~~~";String secretKey = "~~~";Auth auth = Auth.create(accessKey, secretKey);long expireInSeconds = 3600;//1小时,可以自定义链接过期时间String finalUrl = auth.privateDownloadUrl(publicUrl, expireInSeconds);System.out.println(finalUrl);// domain   下载 domain, eg: qiniu.com【必须】// useHttps 是否使用 https【必须】// key      下载资源在七牛云存储的 key【必须】DownloadUrl url = new DownloadUrl(domainOfBucket, false, fileName);/*url.setAttname(attname) // 配置 attname.setFop(fop) // 配置 fop.setStyle(style, styleSeparator, styleParam) // 配置 style*/// 带有效期long expireInSeconds2 = 3600L;//1小时,可以自定义链接过期时间long deadline = System.currentTimeMillis()/1000 + expireInSeconds2;Auth auth2 = Auth.create(accessKey, secretKey);String urlString = url.buildURL(auth2, deadline);System.out.println(urlString);}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 大模型在应用开发安全左移实践
  • 【C/C++】Sleep()函数详解
  • GPIO(通用输入/输出)、中断(hal库)
  • Chrome 中的 RCE 会在 JIT 编译器中产生不正确的副作用
  • 【Linux】匿名管道
  • TypeSript8 泛型学习
  • 【算法进阶1】贪心算法、背包问题(0-1背包、分数背包)、拼接最大数字问题、活动选择问题
  • 6 - Linux PXE高效批量网络装机
  • CacheLoader和装饰器模式
  • 无刷电机、有刷电机和步进电机的区别
  • 初赛笔记1
  • OD C卷 - 项目排期/最少交付时间
  • 新手学习打怪之编译安装LAMP和LNMP
  • PCL 点云ISS关键点提取算法
  • 《陈天奇:机器学习科研的十年》阅读笔记
  • hexo+github搭建个人博客
  • 「面试题」如何实现一个圣杯布局?
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • ➹使用webpack配置多页面应用(MPA)
  • 78. Subsets
  • Angular Elements 及其运作原理
  • AngularJS指令开发(1)——参数详解
  • egg(89)--egg之redis的发布和订阅
  • Git 使用集
  • Java程序员幽默爆笑锦集
  • js学习笔记
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • Netty源码解析1-Buffer
  • PAT A1092
  • PAT A1120
  • Python实现BT种子转化为磁力链接【实战】
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 分布式任务队列Celery
  • 深度学习在携程攻略社区的应用
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • gunicorn工作原理
  • ​补​充​经​纬​恒​润​一​面​
  • ​渐进式Web应用PWA的未来
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • (1)常见O(n^2)排序算法解析
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (SpringBoot)第二章:Spring创建和使用
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (三)c52学习之旅-点亮LED灯
  • (十五)使用Nexus创建Maven私服
  • (一)VirtualBox安装增强功能
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (杂交版)植物大战僵尸
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (转)Sql Server 保留几位小数的两种做法