阿里云oss文件上传

OSS文件上传

配置文件yml

aliyun:
  # 以成都为例子,按照实际情况修改
  endpoint: oss-cn-chengdu.aliyuncs.com
  accessKeyId: *******************
  accessKeySecret: *************************
  bucketName: ********

配置信息获取

endpoint

进入OSS工作台

image-20231211151112355

在网址处查找地域属性,在其后加.aliyuncs.com

image-20231211151204297

accessKeyIdaccessKeySecret

右上角个人信息处点击accessKey管理

image-20231211151332656

点击继续使用

image-20231211151408898

点击创建

image-20231211151433337

验证后即可获得ID与Secret

bucketName

在第一次开通OSS对象后需要创建OSS Bucket

点击立即创建

image-20231211151628323

填入信息,标红处即为bucketName

image-20231211151716227

配置完毕,进行代码测试

Upload

@Slf4j
@RestController
public class UploadController {

    @Autowired
    private AliOSSUtils aliOSSUtils;

    @PostMapping("/upload")
    public AjaxResult upload(MultipartFile file) throws IOException {
        //调用阿里云OSS工具类,将上传上来的文件存入阿里云
        String url = aliOSSUtils.upload(file);
        //将图片上传完成后的url返回,用于浏览器回显展示
        return AjaxResult.success(url);
    }
    
}

AliOSSUtils:

@Component
@ConfigurationProperties(prefix = "aliyun")
public class AliOSSUtils {
    private String endpoint;

    private String accessKeyId;

    private String accessKeySecret;

    private String bucketName;

    public String getEndpoint() {
        return endpoint;
    }

    public void setEndpoint(String endpoint) {
        this.endpoint = endpoint;
    }

    public String getAccessKeyId() {
        return accessKeyId;
    }

    public void setAccessKeyId(String accessKeyId) {
        this.accessKeyId = accessKeyId;
    }

    public String getAccessKeySecret() {
        return accessKeySecret;
    }

    public void setAccessKeySecret(String accessKeySecret) {
        this.accessKeySecret = accessKeySecret;
    }

    public String getBucketName() {
        return bucketName;
    }

    public void setBucketName(String bucketName) {
        this.bucketName = bucketName;
    }

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

        // 避免文件覆盖
        String originalFilename = multipartFile.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 = "https://" + bucketName + "." + endpoint + "/" + fileName;

        // 关闭ossClient
        ossClient.shutdown();
        return url;// 把上传到oss的路径返回
    }
}

代码出处:阿里云OSS的开通+配置及其使用_阿里云oss配置-CSDN博客略微修改

使用postman测试

image-20231211152304441

将访问返回的url

image-20231211152357413

下载了测试时上传的图片

查看OSS工作台

image-20231211152527069

存中…(img-WixNJRuS-1703665776298)]

将访问返回的url

[外链图片转存中…(img-Y3IuTDHG-1703665776298)]

下载了测试时上传的图片

查看OSS工作台

[外链图片转存中…(img-ZMndNOj7-1703665776299)]

图片已放入Bucket对象

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值