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

这篇具有很好参考价值的文章主要介绍了云存储解决方案-华为云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 ,申请华为云账号或者华为账号并完成实名认证。
esdk-obs-java-bundle,各类工具的入门,华为云,java,开发语言

2.2 充值(可以不做)

2.3. 开通OBS

  1. 登陆华为云官网,点击右上角的控制台
    esdk-obs-java-bundle,各类工具的入门,华为云,java,开发语言

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

esdk-obs-java-bundle,各类工具的入门,华为云,java,开发语言
进入之后,开通服务即可。

  1. 开通服务后,点击左侧的总览选项,进入OBS控制台界面。
    esdk-obs-java-bundle,各类工具的入门,华为云,java,开发语言
  2. 创建存储空间–桶

新建桶,命名为web-tlias-cn,读写权限改为 公共读

esdk-obs-java-bundle,各类工具的入门,华为云,java,开发语言

3. OBS快速入门

[参考文档官方]

3.1 创建测试工程,引入依赖

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

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"));

3.3 获取密钥

esdk-obs-java-bundle,各类工具的入门,华为云,java,开发语言

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

esdk-obs-java-bundle,各类工具的入门,华为云,java,开发语言文章来源地址https://www.toymoban.com/news/detail-834773.html

4. 在spring中集成OBS

  1. 将密钥、 地址、桶名配置到application.yml文件中,方便后期的更改
huaweiyun:
  obs:
    endPoint: https://obs.cn-north-4.myhuaweicloud.com
    accessKeyId: -------------------
    secretAccessKey: ------------------------------------
    bucketName: web-tlias-cn
  1. 创建对应的配置文件中华为账户对应的实体类
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. 在工具类中引入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. 在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);
    }
}

到了这里,关于云存储解决方案-华为云OBS服务的基础使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【FAQ】关于JavaScript版本的华为地图服务Map的点击事件与Marker的点击事件存在冲突的解决方案

    创建地图对象,并添加marker标记,对map和marker均添加了点击事件; body script function initMap() { // 创建地图对象 const map = new HWMapJsSDK.HWMap(document.getElementById(\\\'map\\\'), { center: { lat: 39.36322, lng: 116.3214 }, zoom: 8, }); map.on(\\\'click\\\', handleMapClick); ``` 经下方的Gif图可看出,在点击marker标记时不会

    2023年04月26日
    浏览(54)
  • 漏刻有时百度地图API实战开发(1)华为手机无法使用addEventListener click 的兼容解决方案

    漏刻有时百度地图API实战开发(1)华为手机无法使用addEventListener click 的兼容解决方案 漏刻有时百度地图API实战开发(2)文本标签显示和隐藏的切换开关 漏刻有时百度地图API实战开发(3)自动获取地图多边形中心点坐标 漏刻有时百度地图API实战开发(4)显示指定区域在移动端异常的

    2024年01月19日
    浏览(68)
  • 【ELK解决方案】ELK集群+RabbitMQ部署方案以及快速开发RabbitMQ生产者与消费者基础服务...

    前言: 大概一年多前写过一个部署ELK系列的博客文章,前不久刚好在部署一个ELK的解决方案,我顺便就把一些基础的部分拎出来,再整合成一期文章。大概内容包括:搭建ELK集群,以及写一个简单的MQ服务。 如果需要看一年多之前写的文章,可以详见下列文章链接(例如部署

    2023年04月08日
    浏览(45)
  • 微信网页授权之使用完整服务解决方案

    目录 微信网页授权能力调整造成的问题 能力调整的内容和理由 原有运行方案 is_snapshotuser字段  改造原有方案 如何复现测试场景 小结 依附于第三方的开发,做为开发者经常会遇到第三方进行规范和开发的调整,如开发腾讯微信的相关应用。我所经历的如小程序隐私政策调整

    2024年02月20日
    浏览(39)
  • 【Hadoop-OBS-Hive】利用华为云存储对象 OBS 作为两个集群的中间栈 load 文件到 Hive

    本次需求:想将一个集群上的 csv 文件 load 到另一个集群的 Hive 表中,由于两个集群的网络不通,所以利用华为云存储对象 OBS 作为中间栈,从而实现。 服务器A上 /home/test/ 目录下找到测试文件进行压缩,实际生产中不排除单个文件很大,导致上传至存储对象速度慢,所以压缩

    2024年02月02日
    浏览(44)
  • MinIO:开源对象存储解决方案

    MinIO是一款开源的云原生对象存储解决方案,旨在提供高性能、可扩展和持久化存储服务。它兼容Amazon S3 API,可以轻松地集成到现有的应用程序中,为用户提供可靠的对象存储和数据管理。本文将介绍MinIO的基本概念、架构设计以及常见的应用场景,帮助读者了解和使用这个

    2024年02月16日
    浏览(38)
  • AIGC 存储内容安全解决方案

    AIGC会帮助恶意份子更高效地炮制违法违规内容。 2022年,ChatGPT的推出,使 AIGC 这个名词进入了大众的视野。Stable Diffusion、MidJourney等可以生成图片的 AIGC 直接引爆了 AI 作画领域。Gartner 将生成性 AI 列为2022年五大影响力技术之一。 大量的 AIGC 在上线初期就面临关停风险,核心

    2024年02月09日
    浏览(54)
  • 深度解读AIGC存储解决方案

    5月26日,2023数据基础设施技术峰会在苏州举办,腾讯云首席存储技术专家温涛受邀出席并分享了腾讯云领先的存储技术在AIGC场景中的应用,通过对AIGC业务流程和场景的提炼,从内容生成、内容审核和内容智理三要素介绍了如何智能的存储和管理数据。下面我们一起回顾下温

    2024年02月16日
    浏览(36)
  • 华为智能高校出口安全解决方案(1)

    本方案相关课程资源已在华为O3社区发布,各位同学如有视频观看需求,可按照以下步骤进行访问(需要有华为账号哦,普通的个人账号即可~) 课程地址: 复制链接 https://o3community.huawei.com/ 进入华为O3社区; 点击“培训赋能 向导式学习”; 在向导式课程中选择《华为智能高

    2024年02月11日
    浏览(45)
  • Linux服务器使用git clone命令时报错的解决方案

    在往GitHub上上传项目时,使用git clone xxxxx.git时候报错: “gnutls_handshake() failed: the TLS connection was non-properly terminated” 由系统的 git 默认使用的 libcurl4-gnutls-dev 造成,可以使用openssl解决. 但是这个过程也很多坑。 依次执行: 执行到第三句 sudo apt-get build-dep git 又报错: you must

    2023年04月08日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包