COSUploadFileTemplateServiceImpl.java 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package com.nosum.deliver.file.service.impl;
  2. import com.nosum.deliver.file.factory.UploadFileFactory;
  3. import com.nosum.deliver.file.service.UploadFileTemplateService;
  4. import com.nosum.common.cache.ConfigCache;
  5. import com.nosum.common.constant.Constants;
  6. import com.nosum.common.util.FileUtil;
  7. import com.qcloud.cos.COSClient;
  8. import com.qcloud.cos.ClientConfig;
  9. import com.qcloud.cos.auth.BasicCOSCredentials;
  10. import com.qcloud.cos.auth.COSCredentials;
  11. import com.qcloud.cos.model.PutObjectRequest;
  12. import com.qcloud.cos.region.Region;
  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 COSUploadFileTemplateServiceImpl 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. COSClient cosClient = null;
  26. try {
  27. final COSCredentials cred = new BasicCOSCredentials(ConfigCache.getConfig(Constants.COS_ACCESS_KEY), ConfigCache.getConfig(Constants.COS_SECRET_KEY));
  28. final Region region = new Region(ConfigCache.getConfig(Constants.COS_REGION));
  29. final ClientConfig clientConfig = new ClientConfig(region);
  30. cosClient = new COSClient(cred, clientConfig);
  31. final String fileName = FileUtil.createSingleFilePath(ConfigCache.getConfig(Constants.COS_PATH), file.getOriginalFilename());
  32. final PutObjectRequest putObjectRequest = new PutObjectRequest(ConfigCache.getConfig(Constants.COS_BUCKET), fileName, file.getInputStream(), null);
  33. cosClient.putObject(putObjectRequest);
  34. return ConfigCache.getConfig(Constants.COS_IMAGE_DOMAIN) + fileName;
  35. } catch (final IOException e) {
  36. return "";
  37. } finally {
  38. if (cosClient != null) {
  39. cosClient.shutdown();
  40. }
  41. }
  42. }
  43. @Override
  44. public void afterPropertiesSet() throws Exception {
  45. UploadFileFactory.register(Constants.COS, this);
  46. }
  47. }