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

文章目录

  • 一、华为云OBS的基本操作
    • 1.华为云账号注册登录
    • 2.购买OBS对象
    • 3. 获取自身账户的访问密钥(ak,sk)(Springboot项目上传和下载需使用)
    • 4.下载OBS Browser+(图形化管理工具)
  • 二、Springboot项目中代码实现
    • 1.导入依赖:
    • 2.文件上传的实现:
  • 3.文件下载的实现 (持续更新)

一、华为云OBS的基本操作

1.华为云账号注册登录

登录/注册地址: https://auth.huaweicloud.com/
按照提示注册登录即可

2.购买OBS对象

  • 按如下图找到OBS对象存储服务服务:
    在这里插入图片描述
  • 按下图创建桶(创建桶免费,按上传下载用量收费)
    个人理解:桶是用于存放对象的一个空间?
    在这里插入图片描述
  • 创建桶过程省略(可以只填写桶名其他默认,具体事项自己看提示)

3. 获取自身账户的访问密钥(ak,sk)(Springboot项目上传和下载需使用)

  • 右上角我的凭证
    在这里插入图片描述
  • 左边我的密钥(按步骤获取excel中有密钥的ak,sk值)
    在这里插入图片描述

4.下载OBS Browser+(图形化管理工具)

此步骤可省略,具体过程忽略
下载地址:https://developer.huaweicloud.com/tools#section-2

二、Springboot项目中代码实现

1.导入依赖:

    <dependency><groupId>com.huaweicloud</groupId><artifactId>esdk-obs-java</artifactId><version>3.20.6.2</version></dependency><!-- Multipart File处理--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>

2.文件上传的实现:

Obs java官方使用文档 :https://support.huaweicloud.com/sdk-java-devg-obs/obs_21_0101.html
终端结点获取地址(按自身购买桶的地域选):https://developer.huaweicloud.com/endpoint?OBS

具体思路:
1.官方文档的上传方法:

// 创建ObsClient实例(ak,sk是访问密钥,endPoint是终端结点)
ObsClient obsClient = new ObsClient(ak, sk, endPoint);// 文件上传(桶名称,OBS桶中存储的文件名字,文件类型的文件)
obsClient.putObject("bucketname", "objectname", new File("localfile"));

因此只需从前台获取获取File文件即可

2.前端获取文件(使用<input>标签的 type=“file”,
注意:enctype=“multipart/form-data” 必须设置)

<form th:action="@{/file/upload}" method="post" enctype="multipart/form-data"><label>请选择你要上传的文件:</label><input type="file" name="file"><input type="submit" value="提交"></form>

3.Controller处理(Obs操作应该封装,此处为了方便介绍未封装,代码是从原代码中截取关键代码拼接而成,有错请指出谢谢!):

 @RequestMapping("/file/upload")public String userUpload(@RequestParam("file") MultipartFile file) {if (file.isEmpty()) {System.out.printf("文件上传失败");}String fileName = file.getOriginalFilename(); // 得到上传的文件名File tem=new File("D:/"+fileName);            // 本地创建一个新文件用于获取前台传递的内容file.transferTo(tem);   // 将前台传递的文件内容写入tem文件中// 创建ObsClient实例(ak,sk是访问密钥,endPoint是终端结点)ObsClient obsClient = new ObsClient("ak", "sk", "endPoint");// 文件上传(桶名称,OBS桶中存储的文件名字,文件类型的文件)obsClient.putObject("bucketname", "objectname",tem);obsClient.close();
}

3.文件下载的实现 (持续更新)

创作不易给个赞吧!

Published by

风君子

独自遨游何稽首 揭天掀地慰生平