文章目录

  • 前言
  • 一、OBS是什么?
  • 二、使用步骤
    • 1.引入依赖
    • 2.获取obs中的一些参数:endPoint,ak,sk还有桶名(重要,必须要有)。
    • 3.开始下载
    • 4.设置out流的打包下载
  • 总结

前言

对象存储服务(Object Storage Service,OBS)是一个基于对象的海量存储服务,为用户提供海量、安全、高可靠、低成本的数据存储能力,包括:创建、修改、删除桶,上传、下载、删除对象等。OBS为用户提供了超大存储容量的能力,适合存放任意类型的文件,适合普通用户、网站、企业和开发者使用。
对象存储服务支持通过OBS控制台上传最大为50MB的单个文件,以及通过OBS控制台将OBS中的文件下载至本地。但我们此次仅使用Java方式对OBS中的文件做打包下载处理


一、OBS是什么?

华为云对象存储服务(Object Storage Service,OBS),提供海量、安全、高可靠、低成本的数据存储能力,适合企业备份归档、视频点播/监控、大数据分析等多种数据存储场景。

二、使用步骤

1.引入依赖

代码如下(示例):

 <dependency><groupId>com.huaweicloud</groupId><artifactId>esdk-obs-java</artifactId><version>3.20.6.1</version></dependency>

2.获取obs中的一些参数:endPoint,ak,sk还有桶名(重要,必须要有)。

3.开始下载

代码如下:

入了两个参数,一是obs中要下载的目录路径filesPath,二是创建的 ZipOutputStream out = new ZipOutputStream(response.getOutputStream());
中的输出流out。
解释:

if (!objectKey.endsWith("/"))此语句的说明:obs中objectKey获得目录下的所有文件名称,但是会多出来一个根目录的的文件名称(也就是说:假设一个根目录下有三个文件,但objectKey数组的size长度会等于4,下标为0的第一条数据就是根目录的名称),我们要把它舍弃掉,不然执行out.writer(b)就会出错。

  try {ObsClient obsClient = new ObsClient(ak, sk, endPoint);ListObjectsRequest request = new ListObjectsRequest(bucketName);request.setPrefix(filesPath);request.setMaxKeys(500);ObjectListing result;result = obsClient.listObjects(request);for (ObsObject obsObject : result.getObjects()) {obsObject = obsClient.getObject(bucketName,obsObject.getObjectKey());String objectKey = obsObject.getObjectKey();if (!objectKey.endsWith("/")){int index = objectKey.lastIndexOf("/");String fileName = objectKey.substring(index+1);out.putNextEntry(new ZipEntry(fileName));InputStream in = obsObject.getObjectContent();int b;while ((b = in.read())!=-1){out.write(b);}} }} catch (ObsException | FileNotFoundException e) {e.printStackTrace();}return out;

4.设置out流的打包下载

注:zipFileName为压缩包名称,需要完整:xxx.zip

  response.setHeader("content-type", "application/octet-stream");
//        response.setContentType("application/octet-stream");response.setContentType("multipart/form-data");response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(zipFileName, "UTF-8"));out = new ZipOutputStream(response.getOutputStream());String filesPath = "该处为obs中要下载的路径/"obsUtil.download(filesPath, out);out.flush();

总结

此总结非常来之不易,测试不易,若有不懂可私信,希望给一颗小心心咯

Springboot 从华为云OBS中打包下载文件到本地相关推荐

  1. 前端js华为云obs上传下载文件与进度条的设置

    前端js华为云obs上传下载文件与进度条的设置 首先下载OBS BrowserJS SDK安装包 用git将代码拉到本地 git clone https://github.com/huaweiclou ...

  2. sscom串口网络数据调试器使用post方法向华为云obs桶上传文件和图片

    原贴地址:sscom串口网络数据调试器使用post方法向华为云obs桶上传文件和图片-云社区-华为云 [摘要] 之前发了文章"postman使用post方法向华为云obs桶上传文件和图片&q ...

  3. postman使用put方法向华为云obs桶上传文件和图片

    原贴地址:https://bbs.huaweicloud.com/blogs/298147 [摘要] postman使用put方法向华为云obs桶上传文件和图片.记录下过程. postman使用put ...

  4. java集成华为云obs上传下载实战

    说明 最近项目上需要开发一个服务去和华为云OBS集成获取一些业务上的文件,此处记录一下简单的java集成obs的入门,希望对大家快速入门有所帮助:) 实现效果 上传对象 下载到本地 操作步骤 1.开通 ...

  5. SpringBoot整合华为云OBS

    一.参考项 华为云 OBS(官网): 对象存储服务OBS官网_海量安全高可靠_数据云存储解决方案-华为云 OBS SDK for Java(官网): SDK下载_对象存储服务 OBS_Java_华为云 ...

  6. SpringBoot整合华为云OBS实现文件上传下载

    首先我们要添加对应的依赖 <dependency><groupId>com.huaweicloud</groupId><artifactId>esdk- ...

  7. 云存储解决方案-华为云OBS服务的基础使用

    云存储解决方案-华为云OBS 云存储解决方案-华为云OBS 1. 简介 2. 开通OBS 2.1 进入官网 2.2 充值(可以不做) 2.3. 开通OBS 3. OBS快速入门 3.1 创建测试工程, ...

  8. 基于华为云obs实现文件上传下载(技术栈mysql+springboot+Maven+jsp+java)的技术分享

    基于华为云obs实现文件上传下载(技术栈mysql+springboot+jsp+java)的技术分享 obs实现文件上传下载 前言 一.OBS是什么? 二.使用步骤 1.1 前期准备 2 工具的内容 ...

  9. springboot使用华为OBS上传下载文件详解

    文章目录 一.华为云OBS的基本操作 1.华为云账号注册登录 2.购买OBS对象 3. 获取自身账户的访问密钥(ak,sk)(Springboot项目上传和下载需使用) 4.下载OBS Browser ...

最新文章

  1. 饿了么四年、阿里两年:研发路上的一些总结与思考
  2. linux dmesg 格式化时间
  3. 小米网络推广连夜更换品牌LOGO——科技越是进化就越接近生命的形态
  4. 推荐系统炼丹笔记:令人着迷的时间动态CF算法
  5. 【斐波那契数列】算法优化笔记
  6. Java之通过Collections.synchronizedMap创建线程安全的HashMap
  7. 51单片机auxr寄存器_51—52系列单片机特殊功能寄存器一览表
  8. 2018.9--2019.7 Java开发工作中的经验和教训之db2数据库操作
  9. python面试题之用列表解析式选出1-100中的奇数
  10. SAP License:SAP 更改背景图片
  11. BaseAnimation
  12. DevOps实践教程 华为云 系列教程2021 合集
  13. table中td的内容换行。
  14. linux系统连接实验室服务器步骤详解
  15. ajax双子星,荷兰双子星德里赫特和德容哪个厉害
  16. 【树莓派Zero】1- 简介
  17. 一路(16)有你,一起(17)前行
  18. 最新解决谷歌翻译无法使用的教程
  19. 用Python的matplotlib绘制残差分析散点误差棒图
  20. Spring Web : FormHttpMessageConverter

热门文章

  1. fMRI脑影像特征提取——Pearson相关与低阶功能连接LOFC(dpabi+nilearn)
  2. Paint X for Mac破解教程
  3. 如何在群里引流?如何通过别人的群引流?建一个群怎么快速裂变引流
  4. shell 数组介绍
  5. requests案例--度娘翻译
  6. Unity 使用 Behaviac (二)让unity的行为能执行behaviac搭建的树的逻辑
  7. shell脚本监控网站是否正常
  8. Excel导出工具类
  9. 压缩pdf大小的方法?怎样压缩pdf大小?pdf文档怎么压缩?pdf文件太大怎么压缩?pdf文件太大怎么压缩成小内存?如何降低pdf文件大小?怎么把pdf文件压缩到指定大小?压缩pdf的简单方法
  10. 电脑文件定时备份到U盘