123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- package com.fjhx.email.utils;
- import cn.hutool.core.date.DateUtil;
- import cn.hutool.core.io.FileUtil;
- import cn.hutool.core.io.IoUtil;
- import cn.hutool.core.util.IdUtil;
- import cn.hutool.core.util.ObjectUtil;
- import com.fjhx.email.config.exception.ServiceException;
- import com.obs.services.ObsClient;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.context.annotation.Configuration;
- import java.io.InputStream;
- import java.util.Date;
- import java.util.StringJoiner;
- @Configuration
- public class ObsFileUtil {
- private static String ak;
- private static String sk;
- private static String endPoint;
- private static String url;
- private static String bucketName;
- private static String active;
- public static String getCompleteUrl(String path) {
- return url + path;
- }
- @Value("${obs.ak}")
- public void setAk(String ak) {
- ObsFileUtil.ak = ak;
- }
- @Value("${obs.sk}")
- public void setSk(String sk) {
- ObsFileUtil.sk = sk;
- }
- @Value("${obs.endPoint}")
- public void setEndPoint(String endPoint) {
- ObsFileUtil.endPoint = endPoint;
- }
- @Value("${obs.url}")
- public void setUrl(String url) {
- ObsFileUtil.url = url;
- }
- @Value("${obs.bucketName}")
- public void setBucketName(String bucketName) {
- ObsFileUtil.bucketName = bucketName;
- }
- @Value("${spring.profiles.active}")
- public void setActive(String active) {
- ObsFileUtil.active = active;
- }
- public static String uploadFile(String fileName, InputStream inputStream) {
- // 文件后缀名
- String suffix = FileUtil.getSuffix(fileName);
- // 文件路径
- String objectKey = new StringJoiner("/")
- .add("byteSailing")
- .add("mail")
- .add(active)
- .add(DateUtil.format(new Date(), "yyyy/MM/dd"))
- .add(IdUtil.fastSimpleUUID() + (ObjectUtil.isEmpty(suffix) ? "" : "." + suffix))
- .toString();
- ObsClient obsClient = null;
- try {
- // 获取oss链接客户端
- obsClient = getObsClient();
- obsClient.putObject(bucketName, objectKey, inputStream);
- } catch (Exception e) {
- e.printStackTrace();
- throw new ServiceException("文件上传失败");
- } finally {
- IoUtil.close(obsClient);
- }
- return objectKey;
- }
- /**
- * 获取oss链接客户端
- */
- private static ObsClient getObsClient() {
- return new ObsClient(ak, sk, endPoint);
- }
- }
|