后台管理系统引入OSS实现图片上传功能

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 后台管理系统引入OSS实现图片上传功能

简单上传测试


OSS是对象存储服务,有什么用呢?把图片存储到云服务器上能让所有人都访问到!

详细操作可查官方文档,下面只写关键代码

[SDK示例 (aliyun.com)](help.aliyun.com/document_de…)

一、创建子用户测试用例

官方推荐使用子账户的AccessID和SecurityID,因为如果直接给账户的AccessID和SecurityID的话,如果不小心被其他人获取到了,那账户可是有全部权限的!!!

所以这里通过建立子账户,给子账户分配部分权限实习。

这里通过子账户管理OSS的时候,要给子账户添加操控OSS资源的权限 这里是必须要做的,因为子账户默认是没有任何权限的,必须手动给他赋予权限

image.png

二、引入依赖

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

三、测试用例

比较固定,直接粘贴过来拿来直接拿来用

@SpringBootTest
class MallProductApplicationTests {
    @Test
    public void testUploads() throws FileNotFoundException {
        // Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
        String accessKeyId = "。。。";
        String accessKeySecret = "。。。";
        // 填写Bucket名称,例如examplebucket。
        String bucketName = "pyy-mall";
        // 填写Object完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。
        String objectName = "2022/testPhoto.txt";
        // 填写本地文件的完整路径,例如D:\localpath\examplefile.txt。
        // 如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件流。
        String filePath= "C:\Users\Jack\Desktop\R-C.jfif";
        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        try {
            InputStream inputStream = new FileInputStream(filePath);
            // 创建PutObject请求。
            ossClient.putObject(bucketName, objectName, inputStream);
        } 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());
        } 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());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}

image.png


Aliyun Spring Boot OSS


更简单的方法就是通过如下文档,注入OSSClient对象即可实现上传

官方文档如下:github.com/alibaba/ali…

一、引入依赖

我们不是进行依赖管理了吗?为什么还要显示写出2.1.1版本

这是因为这个包没有最新的包,只有和2.1.1匹配的

<dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alicloud-oss</artifactId>
            <version>2.1.1.RELEASE</version>
        </dependency>

二、在配置文件中配置 OSS 服务对应的 accessKey、secretKey 和 endpoint

alicloud:
      access-key: xxx
      secret-key: xxx
      oss:
        endpoint: oss-cn-hangzhou.aliyuncs.com

三、注入OSSClient测试

@Resource
private OSSClient ossClient;
@Test
public void testUploads() throws FileNotFoundException {
    // 上传文件流。
    InputStream inputStream = new FileInputStream("C:\Users\Jack\Desktop\LeetCode_Sharing.png");
    ossClient.putObject("pyy-mall", "2022/testPhoto2.png", inputStream);
    // 关闭OSSClient。
    ossClient.shutdown();
    System.out.println("上传完成...");
}

image.png

\



相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
4月前
|
存储 Java 对象存储
springboot配置阿里云OSS存储实现文件上传下载功能
【1月更文挑战第1天】springboot配置阿里云OSS存储实现文件上传下载功能
612 2
|
7月前
|
存储 JavaScript 应用服务中间件
OSS对象存储后端实现+Vue实现图片上传【基于若依管理系统开发】
OSS对象存储后端实现+Vue实现图片上传【基于若依管理系统开发】
659 0
|
4月前
|
存储 安全 Java
springboot把图片上传到阿里云OSS
springboot把图片上传到阿里云OSS
213 0
|
4月前
|
存储 对象存储 Python
Python中使用阿里云OSS存储实现文件上传和下载功能
Python中使用阿里云OSS存储实现文件上传和下载功能
464 2
|
8月前
|
存储 对象存储 索引
针对OSS数据集成场景下的功能全面优化【Dataphin V3.12]
OSS(Object Storage Service)是对象存储服务,适用于存放各种文件类型,Dataphin已经支持连接到OSS进行文件数据的读取与写入。本期版本升级中,Dataphin对于OSS的数据同步场景做了全面的功能升级,包括数据源、输入组件与数据组件,一起来了解一下吧~
213 0
|
12月前
|
JavaScript 对象存储
vue2.6,js集成oss后图片上传成功后,下载图片打开显示图片损坏
我确认本地上传的图片没问题,我用的put直传,拿到返回的url,换了几张图都这样
vue2.6,js集成oss后图片上传成功后,下载图片打开显示图片损坏
|
存储 前端开发 Java
四步解决!OSS对象存储文件上传功能(服务端签名后直传,建议收藏)
四步解决!OSS对象存储文件上传功能(服务端签名后直传,建议收藏)
2556 2
四步解决!OSS对象存储文件上传功能(服务端签名后直传,建议收藏)
|
存储 安全 对象存储
Typora+阿里云OSS(将图片上传到阿里云服务器上)
Typora+阿里云OSS(将图片上传到阿里云服务器上)
Typora+阿里云OSS(将图片上传到阿里云服务器上)
|
域名解析 存储 网络协议
对象存储OSS域名管理功能|学习笔记
快速学习对象存储OSS域名管理功能
165 0
|
对象存储 开发者
对象存储 OSS 文件(Object)管理功能|学习笔记
快速学习对象存储 OSS 文件(Object)管理功能
375 0