阿里云OSS-SpringBoot文件上传

黑马程序员JavaWeb开发教程

一、基本介绍

1.第三方服务-通用思路

在这里插入图片描述

2. 阿里云OSS-使用步骤

在这里插入图片描述

二、阿里云OSS使用步骤

1. 注册阿里云(实名认证)

  1. 百度输入 阿里云,点击进入阿里云官网

    在这里插入图片描述

  2. 注册

    在这里插入图片描述

  3. 使用手机号注册即可

    在这里插入图片描述

2. 开通对象存储服务(OSS)

  1. 点击控制台

    在这里插入图片描述

  2. 点击左上角

    在这里插入图片描述

  3. 点击对象存储OSS

    在这里插入图片描述

  4. 开通服务

    在这里插入图片描述

3. 创建bucket

  1. 点击bucket列表

    在这里插入图片描述

  2. 点击创建bucket

    在这里插入图片描述

  3. 创建时需要修改的信息

  • Bucket名称 自己写一个即可

    在这里插入图片描述

  • 读写权限-选择公共读

    在这里插入图片描述

4. 获取AccessKey(密钥)

  1. 将鼠标移动到主账号头像上,点击 AccessKey 管理
    在这里插入图片描述

  2. 继续使用AccessKey

    在这里插入图片描述

  3. 创建AccessKey

    在这里插入图片描述

  4. 选择一个验证方式

    在这里插入图片描述

5. 参照官方SDK编写入门程序

5.1 下载SDK

  1. 打开官方文档( 在对象存储OSS界面拉到最下方有一个SDK下载,先点击,再点击SDK实例,之后点击在文档中心打开)

在这里插入图片描述
2. SDK参考 - java - 安装
在这里插入图片描述
3. 选择在Maven项目中加入依赖项的方式,按照文档说明将依赖copy到对应的文件中
在这里插入图片描述

5.2 编写入门案例

  1. java - 对象/文件 - 上传文件 - 简单上传 - 上传文件流 -复制相关代码
    在这里插入图片描述

  2. 修改相关代码的参数为自己的参数

    在这里插入图片描述

  3. 运行main,之后可以看到文件已经被上传到阿里云OSS
    在这里插入图片描述

6. 案例集成OSS

6.1 思路

在这里插入图片描述

6.2 步骤

6.2.1 引入阿里云OSS上传文件工具类
package com.itheima.mytlias.utils;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.util.UUID;

/**
 * 阿里云 OSS 工具类
 */
public class AliOSSUtils {

    private String endpoint = "https://oss-cn-beijing.aliyuncs.com";//自己创建的bucket的区域
    private String accessKeyId = "";//自己的 accessKeyId
    private String accessKeySecret = "";//自己的 accessKeySecret
    private String bucketName = "";//自己创建的bucket的名称

    /**
     * 实现上传图片到OSS
     */
    public String upload(MultipartFile file) throws IOException {
        // 获取上传的文件的输入流
        InputStream inputStream = file.getInputStream();

        // 避免文件覆盖
        String originalFilename = file.getOriginalFilename();
        String fileName = UUID.randomUUID().toString() + originalFilename.substring(originalFilename.lastIndexOf("."));

        //上传文件到 OSS
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        ossClient.putObject(bucketName, fileName, inputStream);

        //文件访问路径
        String url = endpoint.split("//")[0] + "//" + bucketName + "." + endpoint.split("//")[1] + "/" + fileName;
        // 关闭ossClient
        ossClient.shutdown();
        return url;// 把上传到oss的路径返回
    }

}

6.2.2 上传图片接口开发
  1. UploadController.java 中的代码
package com.itheima.mytlias.controller;

import com.itheima.mytlias.pojo.Result;
import com.itheima.mytlias.utils.AliOSSUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

@RestController
@Slf4j
public class UploadController {
    
    @Autowired
    AliOSSUtils aliOSSUtils;//在工具类上加上注解  @Component

    @PostMapping("/upload")
    public Result upload(MultipartFile image) throws IOException {
        //打印日志
        log.info("文件上传,文件名:{}", image.getOriginalFilename());
        //调用阿里云工具类进行文件上传
        String url = aliOSSUtils.upload(image);
        //返回结果
        return Result.success(url);
    }
}

  1. 使用 postman 测试接口
    在这里插入图片描述
  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值