首页 > 其他分享 >云存储解决方案-华为云OBS服务的基础使用

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

时间:2023-09-16 10:44:53浏览次数:35  
标签:String 解决方案 华为 import org com OBS

云存储解决方案-华为云OBS
云存储解决方案-华为云OBS
1. 简介
2. 开通OBS
2.1 进入官网
2.2 充值(可以不做)
2.3. 开通OBS
3. OBS快速入门
3.1 创建测试工程,引入依赖
3.2 在测试类中创建方法上传本地文件来测试
3.3 获取密钥
4. 在spring中集成OBS
云存储解决方案-华为云OBS
1. 简介
华为云对象存储服务(Object Storage Service,简称OBS)为您提供基于网络的数据存取服务。使用OBS,您可以通过网络随时存储和调用包括文本、图片、音频和视频等在内的各种非结构化数据文件。
华为云OBS将数据文件以对象(object)的形式上传到存储空间(bucket - 桶)中。

2. 开通OBS
2.1 进入官网
打开https://auth.huaweicloud.com/authui/login.html?locale=zh-cn&service=#/login ,申请华为云账号或者华为账号并完成实名认证。


2.2 充值(可以不做)
2.3. 开通OBS
登陆华为云官网,点击右上角的控制台


在快速导航界面搜索对象存储服务OBS,即可找到OBS,或者直接在快速导航里看见,直接进入即可。


进入之后,开通服务即可。

开通服务后,点击左侧的总览选项,进入OBS控制台界面。

创建存储空间–桶
新建桶,命名为web-tlias-cn,读写权限改为 公共读

 

3. OBS快速入门
[参考文档官方]

3.1 创建测试工程,引入依赖
<dependency>
<groupId>com.huaweicloud</groupId>
<artifactId>esdk-obs-java-bundle</artifactId>
<version>3.21.11</version>
</dependency>
1
2
3
4
5
3.2 在测试类中创建方法上传本地文件来测试
import com.obs.services.ObsClient;
import java.io.File;

public class HuaweiDemo {
public static void main(String[] args) throws Exception {
// Endpoint以北京四为例,其他地区请按实际情况填写。
String endPoint = "https://obs.cn-north-4.myhuaweicloud.com";
String ak = "-----------------";
String sk = "--------------------------";
// 创建ObsClient实例
ObsClient obsClient = new ObsClient(ak, sk, endPoint);

// localfile为待上传的本地文件路径,需要指定到具体的文件名
obsClient.putObject("web-tlias-cn", "1.jpg", new File("E:\\新建文件夹\\图片2.jpg"));
1
2
3
4
5
6
7
8
9
10
11
12
13
14
3.3 获取密钥


然后新增密钥创建密钥即可,并将密钥下载下来

 

4. 在spring中集成OBS
将密钥、 地址、桶名配置到application.yml文件中,方便后期的更改
huaweiyun:
obs:
endPoint: https://obs.cn-north-4.myhuaweicloud.com
accessKeyId: -------------------
secretAccessKey: ------------------------------------
bucketName: web-tlias-cn
1
2
3
4
5
6
创建对应的配置文件中华为账户对应的实体类
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Data
@Component
@ConfigurationProperties(prefix = "huaweiyun.obs")
public class HuaWeiOBSProperties {
private String endPoint;
private String accessKeyId;
private String secretAccessKey;
private String bucketName;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
在工具类中引入OBS实体类对象,并获取方法将文件上传以及返回文件的路径
import com.obs.services.ObsClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.io.InputStream;
import java.util.UUID;

@Component
public class HuaWeiOBSUtills {
//注入华为云对象
@Autowired
private HuaWeiOBSProperties huaWeiOBSProperties;

public String upload(MultipartFile file) throws IOException {
//获取华为云Obs参数
String endpoint = huaWeiOBSProperties.getEndPoint();
String accessKeyId = huaWeiOBSProperties.getAccessKeyId();
String accessKeySecret = huaWeiOBSProperties.getSecretAccessKey();
String bucketName = huaWeiOBSProperties.getBucketName();
// 获取上传的文件的输入流
InputStream inputStream = file.getInputStream();

// 避免文件覆盖
String originalFilename = file.getOriginalFilename();
String fileName = UUID.randomUUID().toString() + originalFilename.substring(originalFilename.lastIndexOf("."));

//上传文件到 OBS
ObsClient obsClient = new ObsClient(accessKeyId, accessKeySecret, endpoint);
obsClient.putObject(bucketName, fileName, inputStream);

//文件访问路径https://web-tlias-cn.obs.cn-north-4.myhuaweicloud.com/1.jpg
String url = endpoint.split("//")[0] + "//" + bucketName + "." + endpoint.split("//")[1] + "/" + fileName;
// 关闭obsClient
obsClient.close();
return url;// 把上传到oss的路径返回
}
}


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
在upload类中,调用OBS工具类以及方法,将上传的文件传入到华为云OBS中
import com.itheima.pojo.Result;
import com.itheima.utils.HuaWeiOBSUtills;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;


@Slf4j
@RestController
public class UploadController {
@Autowired
private HuaWeiOBSUtills huaWeiOBSUtills;

@PostMapping("/upload")
public Result upload(MultipartFile image) throws IOException {
log.info("文件的名字:{}",image.getOriginalFilename());
//调用阿里云OSS工具类,将上传上来的文件存入阿里云
String url = huaWeiOBSUtills.upload(image);
//将图片上传完成后的url返回,用于浏览器回显展示
return Result.success(url);
}
}
————————————————
版权声明:本文为CSDN博主「张晗的库」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/z1659079591/article/details/130821536

标签:String,解决方案,华为,import,org,com,OBS
From: https://www.cnblogs.com/outrun/p/17706399.html

相关文章

  • 如何使用华为云对象存储OBS托管Discuz!论坛图片和附件
    Discuz!论坛默认支持通过FTP的方式上传远程附件,自然能够想到在S3fs的基础上,加上一个简单的FTP服务器(无须对公网开放FTP端口)。总体是这么个架构:这里以CentOS7下的vsftpd为例安装vsftpd:-------------这里是重点------------为了让桶中的文件可以让用户直接访问到,需要修改桶......
  • obs上传文件到服务器,附件同步到华为云OBS存储备份实践(服务端API应用)
    usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingGrapeCity.Forguncy.ServerApi;usingOBS;usingOBS.Model;namespaceFileToHuaweiOBS{publicclassFileToHuaweiOBS:Forgunc......
  • 华为认证 | 考HCIE,真的不需要先考HCIP
    HCIA是初级,HCIP是中级,HCIE是高级认证,大家都懂。但总有人问,考HCIE要先考HCIA和HCIP吗?今天跟你说说这个!01考HCIE需要先考HCIP么?考HCIE认证没有什么限制,专业、经验等级都没有限制,只要想考HCIE,就可以直接报考HCIE认证,不用先考HCIA或HCIP认证的。虽然不需要先拿到HCIA、HCIP才能报考HCI......
  • 解决方案| anyRTC远程检修应用场景
    背景在这个科技飞速发展的时代,各行各业都要求高效运转。然而,当出现问题时,我们却常常因为无法及时解决而感到困扰,传统解决问题的方式是邀请技术人员现场解决问题,如果技术人员解决不了,还要邀请专家从其他城市到现场解决,这中间会流失很多时间,影响生产效率。现在,anyRTC推出一站式远程......
  • 华为云ROMA Connect亮相Gartner®全球应用创新及商业解决方案峰会,助力企业应用集成和
    9月13日-9月14日Gartner全球应用创新及商业解决方案峰会在伦敦举行本届峰会以“重塑软件交付,驱动业务价值”为主题,全球1000多位业内专家交流最新的企业应用、软件工程、解决方案架构、集成与自动化、API等企业IT战略和新兴技术热门话题。9月13日,华为流程ITROMA首席专家陆昕,华为云R......
  • 解决方案| anyRTC远程检修应用场景
    背景在这个科技飞速发展的时代,各行各业都要求高效运转。然而,当出现问题时,我们却常常因为无法及时解决而感到困扰,传统解决问题的方式是邀请技术人员现场解决问题,如果技术人员解决不了,还要邀请专家从其他城市到现场解决,这中间会流失很多时间,影响生产效率。现在,anyRTC推出一站式远......
  • .net链接mysql报错:给定关键字不在字典中,解决方案
    如果看到这个报错信息,大概率是的原因是:1、连接字符串中编码和数据库实际编码不一致。解决方案:修改连接字符串中的编码即可,保证和mysql中编码一致。 2、MySql.Data.dll版本不一致。解决方案:去mysql官网下载对应版本的dll;或使用VS的Nuget更新MySql.Data.dll。......
  • 振弦采集仪和传感器形成完整链条的岩土工程解决方案
    振弦采集仪和传感器形成完整链条的岩土工程解决方案振弦采集仪和传感器是岩土工程领域中非常重要的两个设备,它们可以形成一个完整的监测系统,用于测量和记录土体或岩石结构的振动和应力等关键参数。该方案的实现可以提供有力的支撑,从而确保岩土工程的安全和可靠性。首先来了解一......
  • PPT| 精细化工行业数字化解决方案 P167
    本人从事咨询工作多年,二十年一线数字化规划咨询经验,提供制造业数智化转型规划服务,顶层规划/企业架构/数据治理/数据安全解决方案资料干货.【智能制造数字化咨询】该PPT共167页,由于篇幅有限,以下为部分资料,如需完整原版 方案,点击右上角红色按钮关注+私信。......
  • 如何用华为云ModelArts平台玩转Llama2
    本文分享自华为云社区《如何用华为云ModelArts平台玩转Llama2》,作者:码上开花_Lancer。天哪~~Llama2模型开源了拉!! Llama2不仅开源了预训练模型,而且还开源了利用对话数据SFT后的Llama2-Chat模型,并对Llama2-Chat模型的微调进行了详细的介绍。开源模型目前有7B、13B、70B三种尺......