阿里云oss对象存储

阿里云OSS对象存储

一,创建Bucket

1, 进入OSS的控制台,在Bucket 管理列表中,可以查看到自己的Bucket 数量,如果已经有了,则不要创建。没有的话,跟着我下面来创建一个Bucket 。

2, 点击创建Bucket ,进入到Bucket基本信息填写表单中。

3, 基本信息填写

【Bucket名称】 可以随意取,最好跟自己的项目名称有关系的名称,避免后面创建的Bucket多了分不清楚。
【地域】 可以任意选择,可以根据自己所在区域进行选择。
【Endpoint】 默认不可修改的,这个后面编写接口的时候要用到。
【所属资源组】 可以不选择。
【存储类型】 自己学习用的话,选择“低频访问选择”就可以,如果是企业项目的话,最好选择标准存储。后面的归档类型,主要是存放后就基本不访问的情况。我们这里选择“低频访问选择”。
【HDFS服务】/【同城冗余存储】/【版本控制】 这些都可以不用开启。
【读写权限】 选择“公共读”就可以,写的时候,后端接口会进行身份认证校验的。
【服务端加密方式】/【实时日志查询】 都可以不开通。

在这里插入图片描述

点击确定创建Bucket。

在Bucket列表就会有一条:sdms-img。

在这里插入图片描述

二,后端工作

2.1 引入依赖

在pom.xml文件中引入依赖

<dependency>
	<groupId>com.aliyun.oss</groupId>
	<artifactId>aliyun-sdk-oss</artifactId>
	<version>3.15.1</version>
</dependency>

2.2 创建Access Key

在OSS存储对象首页概览中,最右侧中的常用入口有Access Key的入口。如果没有找到,或者在个人中心处的Access Key,也可以进入到Access Key设置页面。

在这里插入图片描述

点击进入Access Key,选择继续使用。

在这里插入图片描述

进入到Access Key列表页面,如果创建过Access Key,可以直接使用,无需创建。如果没有,点击创建,进行验证码创建即可。
创建成功后,就会有AccessKey IDAccessKeySecret,后面需要用到。

在这里插入图片描述

这里建议提前保存ID 和 Secret后面可以直接使用,若关闭了需要重新使用验证码查看

2.3 配置yml文件

OSS访问常量定义: 在进行文件上传的时候,需要身份的校验,因此我们需要把身份验证的相关信息,定义在配置文件中(yml/properties)。
这里主要用到的几个信息是:endpoint、accessKeyId、accessKeySecret、bucketName。

#配置阿里云oss
aliyun:
  oss:
    file:
      end-point: oss-cn-shenzhen.aliyuncs.com
      access-key-id: LTAI5tQbJtr
      access-key-secret: YTAsNTr8
      bucket-name: sdms

如果找不到【endpoint】信息,可以进入你自己【Bucket 列表】,点击Bucket 名称进入到Bucket 的详情页面。选择【概览】,进入页面,下面就会有。选择外网访问中的Endpoint

在这里插入图片描述

2.4 编写上传逻辑代码

使用Value()注解,注入在配置文件中配的常量参数。
在filename文件中,拼接了文件目录字符串,文件目录以每日的格式进行存储。(可选,如果不设置目录的话,所有的图片对象都全部存储在根目录)
最后拼接图片访问的url,返回给前端,前端统一封装成实体类,提交给新增/更新的接口。

2.4.1 Service层
public interface IOssService {
    public String uploadFile(MultipartFile file);
}
2.4.2 ServiceImpl层
@Service
public class OssServiceImpl implements IOssService{
    @Value("${aliyun.oss.file.end-point}")
    String endpoint;
    @Value("${aliyun.oss.file.access-key-id}")
    String accessKeyId;
    @Value("${aliyun.oss.file.access-key-secret}")
    String accessKeySecret;
    @Value("${aliyun.oss.file.bucket-name}")
    String bucketName;

    @Override
    public String uploadFile(MultipartFile file) {
        String dir = DateTime.now().toString();
        //获取文件名
        String fileName = dir+"/"+file.getOriginalFilename();
        //创建OSSClient实例
        OSS ossClient = new OSSClientBuilder().build(endpoint,accessKeyId,accessKeySecret);

        try {
            //获得文件流
            InputStream inputStream = file.getInputStream();
            //创建putObject请求
            ossClient.putObject(bucketName,fileName,inputStream);
            //返回拼接后oss访问路径
            String url = "https://"+bucketName+"."+endpoint+"/"+fileName;
            return url;
        }catch (OSSException oe) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "but was rejected with an error response for some reason.");
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
            return null;
        }catch (ClientException ce) {
            System.out.println("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + "such as not being able to access the network.");
            System.out.println("Error Message:" + ce.getMessage());
            return null;
        }catch (IOException e) {
            e.printStackTrace();
            return null;
        }finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}

三,测试

在Controller层接收前端传过来的file,调用IOSSService,成功!

在OSS管理控制层查看是否上传成功

在这里插入图片描述

可以发现,我们已经成功上传至OSS,到这里OSS的简单上传就结束了。
写的都是很简单的东西,记录一下第一次简单实用阿里云的OSS对象存储,大家看看就好,别喷我!!!

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SpringBoot可以通过整合阿里云OSS对象存储服务来实现文件上传和管理功能。具体实现可以参考以下步骤: 1. 在service层定义FileService接口,该接口包含上传文件到阿里云OSS的方法。例如,可以使用MultipartFile作为参数,返回上传成功后的文件URL。 2. 在controller层编写FileApiController类,该类使用@RestController注解标识为控制器,并使用@RequestMapping注解指定请求路径。在该类中,通过@Autowired注入FileService,并在文件上传的接口方法中调用FileService的上传文件方法并返回上传成功后的文件URL。 3. 在配置文件中配置阿里云OSS的相关信息,包括accessKey、secretKey、bucketName等。可以使用SpringBoot提供的@ConfigurationProperties注解来读取配置文件中的信息。 4. 在pom.xml文件中添加阿里云OSS SDK的依赖。 5. 编写上传文件的前端界面,可以使用HTML或者前端框架如Vue.js、React等。 通过以上步骤的实现,SpringBoot就可以整合阿里云OSS对象存储服务,实现文件上传和管理功能。这样可以将文件存储阿里云OSS中,提高文件的安全性和可靠性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [SpringBoot整合阿里云OSS对象存储服务的实现](https://download.csdn.net/download/weixin_38649091/12721580)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [全网最详细SpringBoot、SpringCloud整合阿里云OSS对象存储服务](https://blog.csdn.net/weixin_55076626/article/details/127924003)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值