ObsFileUtil.java 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. package com.fjhx.email.utils;
  2. import cn.hutool.core.date.DateUtil;
  3. import cn.hutool.core.io.FileUtil;
  4. import cn.hutool.core.io.IoUtil;
  5. import cn.hutool.core.util.IdUtil;
  6. import cn.hutool.core.util.ObjectUtil;
  7. import com.fjhx.email.config.exception.ServiceException;
  8. import com.obs.services.ObsClient;
  9. import org.springframework.beans.factory.annotation.Value;
  10. import org.springframework.context.annotation.Configuration;
  11. import java.io.InputStream;
  12. import java.util.Date;
  13. import java.util.StringJoiner;
  14. @Configuration
  15. public class ObsFileUtil {
  16. private static String ak;
  17. private static String sk;
  18. private static String endPoint;
  19. private static String url;
  20. private static String bucketName;
  21. private static String active;
  22. public static String getCompleteUrl(String path) {
  23. return url + path;
  24. }
  25. @Value("${obs.ak}")
  26. public void setAk(String ak) {
  27. ObsFileUtil.ak = ak;
  28. }
  29. @Value("${obs.sk}")
  30. public void setSk(String sk) {
  31. ObsFileUtil.sk = sk;
  32. }
  33. @Value("${obs.endPoint}")
  34. public void setEndPoint(String endPoint) {
  35. ObsFileUtil.endPoint = endPoint;
  36. }
  37. @Value("${obs.url}")
  38. public void setUrl(String url) {
  39. ObsFileUtil.url = url;
  40. }
  41. @Value("${obs.bucketName}")
  42. public void setBucketName(String bucketName) {
  43. ObsFileUtil.bucketName = bucketName;
  44. }
  45. @Value("${spring.profiles.active}")
  46. public void setActive(String active) {
  47. ObsFileUtil.active = active;
  48. }
  49. public static String uploadFile(String fileName, InputStream inputStream) {
  50. // 文件后缀名
  51. String suffix = FileUtil.getSuffix(fileName);
  52. // 文件路径
  53. String objectKey = new StringJoiner("/")
  54. .add("byteSailing")
  55. .add("mail")
  56. .add(active)
  57. .add(DateUtil.format(new Date(), "yyyy/MM/dd"))
  58. .add(IdUtil.fastSimpleUUID() + (ObjectUtil.isEmpty(suffix) ? "" : "." + suffix))
  59. .toString();
  60. ObsClient obsClient = null;
  61. try {
  62. // 获取oss链接客户端
  63. obsClient = getObsClient();
  64. obsClient.putObject(bucketName, objectKey, inputStream);
  65. } catch (Exception e) {
  66. e.printStackTrace();
  67. throw new ServiceException("文件上传失败");
  68. } finally {
  69. IoUtil.close(obsClient);
  70. }
  71. return objectKey;
  72. }
  73. /**
  74. * 获取oss链接客户端
  75. */
  76. private static ObsClient getObsClient() {
  77. return new ObsClient(ak, sk, endPoint);
  78. }
  79. }