ALiYunOSSUploadFileTemplateServiceImpl.java 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package com.nosum.deliver.file.service.impl;
  2. import com.aliyun.oss.OSS;
  3. import com.aliyun.oss.OSSClientBuilder;
  4. import com.aliyun.oss.internal.OSSHeaders;
  5. import com.aliyun.oss.model.ObjectMetadata;
  6. import com.aliyun.oss.model.PutObjectRequest;
  7. import com.aliyun.oss.model.StorageClass;
  8. import com.nosum.deliver.file.factory.UploadFileFactory;
  9. import com.nosum.deliver.file.service.UploadFileTemplateService;
  10. import com.nosum.common.cache.ConfigCache;
  11. import com.nosum.common.constant.Constants;
  12. import com.nosum.common.util.FileUtil;
  13. import org.springframework.beans.factory.InitializingBean;
  14. import org.springframework.stereotype.Service;
  15. import org.springframework.web.multipart.MultipartFile;
  16. import java.io.IOException;
  17. @Service
  18. public class ALiYunOSSUploadFileTemplateServiceImpl implements UploadFileTemplateService, InitializingBean {
  19. @Override
  20. public boolean doCheck(final MultipartFile file) {
  21. return true;
  22. }
  23. @Override
  24. public String doSaveFileStore(final MultipartFile file) {
  25. final OSS ossClient = new OSSClientBuilder()
  26. .build(ConfigCache.getConfig(Constants.ALIYUN_OSS_ENDPOINT),
  27. ConfigCache.getConfig(Constants.ALIYUN_OSS_ACCESS_KEY),
  28. ConfigCache.getConfig(Constants.ALIYUN_OSS_SECRET_KEY));
  29. try {
  30. final String fileName = FileUtil.createSingleFilePath(ConfigCache.getConfig(Constants.ALIYUN_OSS_PATH), file.getOriginalFilename());
  31. final PutObjectRequest putObjectRequest = new PutObjectRequest(ConfigCache.getConfig(Constants.ALIYUN_OSS_BUCKET), fileName, file.getInputStream());
  32. final ObjectMetadata metadata = new ObjectMetadata();
  33. metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS, StorageClass.Standard.toString());
  34. putObjectRequest.setMetadata(metadata);
  35. ossClient.putObject(putObjectRequest);
  36. return ConfigCache.getConfig(Constants.ALIYUN_OSS_IMAGE_DOMAIN) + fileName;
  37. } catch (final IOException e) {
  38. return "";
  39. } finally {
  40. if (ossClient != null) {
  41. ossClient.shutdown();
  42. }
  43. }
  44. }
  45. @Override
  46. public void afterPropertiesSet() throws Exception {
  47. UploadFileFactory.register(Constants.ALIYUN_OSS, this);
  48. }
  49. }