阿里云OSS存储

购买/试用阿里云OSS

1.进入阿里云官网,首页选择产品阿里云权益中心_助力学生、开发者、企业用云快速上云-阿里云 (aliyun.com)

 在产品类别->选择存储

 2.点击存储选基础存储服务

3.点击对象存储oss

4.购买之后创建创建 AccessKey

5.创建之后截屏或复制保存

6.进入控制台创建Bucket 

7.进入你的bucket

8.选择上传文件

9.扫描文件上传

10.oss文档快速上手 

对象存储(OSS)-阿里云帮助中心 (aliyun.com)

 

在SpringBoot项目中使用OSS存储 

1.安装OSS Java SDK对象存储

如果你使用的是 使用Java 1.7.0 到 Java 9之前版本则导入这个jar包即可

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

如果你的Java版本是 9之后则需要在导入这三个jar包 

<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.1</version>
</dependency>
<dependency>
    <groupId>javax.activation</groupId>
    <artifactId>activation</artifactId>
    <version>1.1.1</version>
</dependency>
<!-- no more than 2.3.3-->
<dependency>
    <groupId>org.glassfish.jaxb</groupId>
    <artifactId>jaxb-runtime</artifactId>
    <version>2.3.3</version>
</dependency>

 2.Controller层建一个测试

这个uuid用来生成图片不重复名称

package com.lu.tlias84.controller;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.lu.tlias84.utils.ResultUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.util.UUID;

@RestController
@RequestMapping("/upload")
@Slf4j
public class UploadController {
    /**
     * springboot封装用于接受文件的对象
     * @param file
     * @return
     * @throws Exception
     */
    @PostMapping
    public ResultUtil upload(MultipartFile file) throws Exception {
        //获取参数名
        log.info("{}",file.getName());
        //获取实际上传文件
        log.info("{}",file.getOriginalFilename());
        //拆分文件后缀(类型)
        String filename = file.getOriginalFilename();

        String suffix = filename.substring(filename.lastIndexOf("."));

        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";//阿里云oss访问路径

        //生成不重复id
        String uuid = UUID.randomUUID().toString();

        String bucketName = "count-c";//填写bucket名称

        String objectName = uuid  + suffix; // 创建OSSClient实例。
        //将文件转移到oss
        //创建oss实力 要指定访问密钥
        OSS ossClient = new OSSClientBuilder().build(endpoint,"你自己的",
                "你自己的");

        ossClient.putObject(bucketName, objectName, file.getInputStream());
        String url = "https://" + bucketName + ".oss-cn-hangzhou.aliyuncs.com/" + objectName;
        return ResultUtil.success(new StringBuilder(url));
        
    }
}

3.把以上步骤封装成一个工具类 

package com.lu.tlias84.utils;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.Objects;
import java.util.UUID;

public class OssUtils {
    private OssUtils() {
    }

    private final static String KEYED = "你自己的ID";
    private final static String KEY = "你自己的密钥";
    /**
     * 阿里云访问路径这个是杭州的你要选择自己的
     */
    private final static String ENDPOINT = "https://oss-cn-hangzhou.aliyuncs.com";
    /**
     * 这里填你自己的bucket
     */
    private final static String BUCKETNAME = "count-t";

    /**
     * springboot封装用于接受文件的对象
     * @param file 传过来的数据
     * @return URL
     */
    public static String URL(MultipartFile file) {
        String filename = file.getOriginalFilename();
        if (Objects.nonNull(filename)) {
            String suffix = filename.substring(filename.lastIndexOf("."));
            String uuid = UUID.randomUUID().toString();//生成不重复id;
            String objectName = uuid + suffix;
            OSS ossClient = new OSSClientBuilder().build(ENDPOINT, KEYED, KEY);//创建oss实例指定访问密钥
            try {
                ossClient.putObject(BUCKETNAME, objectName, file.getInputStream());
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
            return "https://" + BUCKETNAME + ".oss-cn-hangzhou.aliyuncs.com/" + objectName;//返回的URL
        }
        return "file不能为空";

    }
}

 调用测试

package com.lu.tlias84.controller;


import com.lu.tlias84.utils.OssUtils;
import com.lu.tlias84.utils.ResultUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

@RestController
@RequestMapping("/upload")
@Slf4j
public class UploadController {

    @PostMapping
    public ResultUtil upload(MultipartFile file) {
        String url = OssUtils.URL(file);
        return ResultUtil.success(new StringBuilder(url));
    }
}

4.用apifox测试上传

上传成功

 5.查看文件列表是否有上传的图片

文件存在上传成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值