阿里云文件上传

阿里云文件上传


开启阿里云oss对象存储服务

  • https://oss.console.aliyun.com/overview

导入阿里云依赖

我这里使用的是jdk1.8,jdk不同的具体看文档

sdk地址

    <!-- 阿里云oss依赖 -->
    <dependency>
        <groupId>com.aliyun.oss</groupId>
        <artifactId>aliyun-sdk-oss</artifactId>
        <version>3.1.0</version>
    </dependency>

编写变量配置类


aliyun:
  oss:
    file:
      endpoint: oss-cn-hangzhou.aliyuncs.com
      keyid: LTAI5tE5VrAKRSWx2ttPYSuQ
      keysecret: uDK4thWwUgQ2CA1fYP2AktKYFV5tjl
      bucketname: rainbow-project-oss
package com.xhh.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@ConfigurationProperties(prefix = "aliyun.oss.file")
@Component
@Data
public class OSSProperties {
    private String endpoint;
    private String keyid;
    private String keysecret;
    private String bucketname;
}

sdk

@Override
    public String uploadImg(MultipartFile file) {
        String bucketname = ossProperties.getBucketname();
        String endpoint = ossProperties.getEndpoint();
        String keyid = ossProperties.getKeyid();
        String keysecret = ossProperties.getKeysecret();
        try {
            //创建oss实例
            OSS ossClient = new OSSClientBuilder().build(endpoint, keyid, keysecret);
            //获取文件上传输入流
            InputStream inputStream = file.getInputStream();
            //获取文件名称
            String originalFilename = file.getOriginalFilename();
            //拼接文件名称,一文件夹的形式存储,2023/11/22/fjsdlkfjsdf01.jpg
            String uuid = UUID.randomUUID().toString().replaceAll("-", "");
            String fileName = uuid + originalFilename;//fjsdlkfjsdf01.jpg

//            SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
//            String format = sdf.format(new Date());//2023/11/14
//            使用joda-time工具
            String formatDate = new DateTime().toString("yyyy/MM/dd");
            fileName = formatDate + "/" + fileName;
            //上传
            //第一个参数bucket名称
            //第二个文件路径或者文件名称   2023/11/22/sdfsld01.jpg   01.jpg
            //第三个文件流
//            System.out.println(fileName);
            ossClient.putObject(bucketname, fileName, inputStream);
            //关闭
            ossClient.shutdown();
            //拼接路径
            String url = "https://" + bucketname + "." + endpoint + "/" + fileName;
            return url;

        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值