当前位置:   article > 正文

阿里云oss对象存储_oss bucket

oss bucket

阿里云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>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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

在这里插入图片描述

2.4 编写上传逻辑代码

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

2.4.1 Service层
public interface IOssService {
    public String uploadFile(MultipartFile file);
}
  • 1
  • 2
  • 3
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();
            }
        }
    }
}
  • 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
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51

三,测试

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

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

在这里插入图片描述

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/379450
推荐阅读
相关标签
  

闽ICP备14008679号