阿里云OSS配置 及模板代码

阿里云OSS配置 及模板代码

由于存储服务, 也是属于基础通用服务, 所以需要将OSS的基础依赖、配置定义在 common 工程中。

添加依赖
<dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
</dependency>
common添加工具类 需要用时直接使用注解注入即可
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.PutObjectResult;
import com.nineclock.common.enums.ResponseEnum;
import com.nineclock.common.exception.NcException;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.io.InputStream;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

@Component
@ConfigurationProperties(prefix = "aliyun.oss")
@Slf4j
@Data
public class OssClientUtils {

    private String endpoint;
    private String accessKeyId;
    private String accessKeySecret;
    private String bucketName;
    private String host;

    /**
     * 上传文件
     * @param fileName 原始文件名
     * @param inputStream 文件输入流
     * @return
     */
    public String uploadFile(String fileName, InputStream inputStream) {

        OSS ossClient = new OSSClientBuilder().build("http://" + endpoint, accessKeyId, accessKeySecret);

        fileName = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS")) + "-" + fileName;

        try {
            PutObjectResult objectResult = ossClient.putObject(bucketName, fileName, inputStream);

            log.info("文件 {} 上传成功, 上传的结果为: {}", fileName, objectResult.getResponse());

            // 拼接url路径
            return "https://" + host + "/" + fileName;

        } catch (Exception e) {
            log.error("文件上传失败,错误信息:", e);
            throw new NcException(ResponseEnum.FILE_UPLOAD_ERROR);

        } finally {
            // 关闭OSSClient
            ossClient.shutdown();
        }
    }
}
系统微服务中的调用者 添加yml 配置信息
aliyun:
  oss:
    accessKeyId: # accessKeyId
    accessKeySecret: # accessKeySecret
    bucketName: # bucketName
    endpoint: # endpoint
    host: # host 例:lk-bukect.oss-cn-xxx.aliyuncs.com
例:调用
    @Autowired
    private OssClientUtils ossClientUtils;


    @Test
    public void testUpload() throws Exception {
        String url = ossClientUtils.uploadFile("abc.jpg", new FileInputStream("D:\\14.jpg"));
       
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值