| package com.zy.crm.common.service; | 
|   | 
| import com.aliyun.oss.OSSClient; | 
| import com.aliyun.oss.model.OSSObject; | 
| import com.aliyun.oss.model.ObjectMetadata; | 
| import com.core.common.SnowflakeIdWorker; | 
| import com.core.exception.CoolException; | 
| import lombok.Data; | 
| import org.slf4j.Logger; | 
| import org.slf4j.LoggerFactory; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.beans.factory.annotation.Value; | 
| import org.springframework.stereotype.Service; | 
|   | 
| import java.io.File; | 
| import java.io.FileInputStream; | 
| import java.io.FileNotFoundException; | 
| import java.io.InputStream; | 
| import java.net.URL; | 
| import java.util.Date; | 
|   | 
| /** | 
|  * 阿里云OSS服务类 | 
|  * Created by vincent on 2019-11-26 | 
|  */ | 
| @Data | 
| @Service("ossService") | 
| public class OssService { | 
|   | 
|     private static Logger log = LoggerFactory.getLogger(OssService.class); | 
|   | 
|     private static final String OSS_ENDPOINT = "http://oss-cn-hangzhou.aliyuncs.com"; | 
|   | 
|     @Value("${aliyun.oss.id}") | 
|     private String accessKeyId; | 
|   | 
|     @Value("${aliyun.oss.secret}") | 
|     private String accessKeySecret; | 
|   | 
|     @Value("${aliyun.oss.bucket}") | 
|     private String bucket; | 
|   | 
|     @Value("${aliyun.oss.endpoint}") | 
|     private String endpoint; | 
|   | 
|     @Autowired | 
|     private SnowflakeIdWorker snowflakeIdWorker; | 
|   | 
|     /** | 
|      * 上传OSS文件 | 
|      * @return the url | 
|      */ | 
|     public String upload(InputStream inputStream, String suffix){ | 
|         if(suffix.trim().equals("file")){ | 
|             suffix="jpg"; | 
|         } | 
|         OSSClient ossClient = new OSSClient(OSS_ENDPOINT, accessKeyId, accessKeySecret); | 
|         String name = ""; | 
|         try { | 
|             if (!ossClient.doesBucketExist(bucket)) { | 
|                 ossClient.createBucket(bucket); | 
|                 log.info("您的Bucket不存在,创建Bucket:{}",bucket); | 
|             } | 
|             name = String.valueOf(snowflakeIdWorker.nextId()).concat(".").concat(suffix); | 
|             // 添加 ContentType | 
|             ObjectMetadata objectMetadata = new ObjectMetadata(); | 
|             objectMetadata.setContentType("image/jpg"); | 
|             ossClient.putObject(bucket, name, inputStream, objectMetadata); | 
|             Date expiration = new Date(new Date().getTime() + 3600L * 1000 * 24 * 365 * 100); | 
|             URL url = ossClient.generatePresignedUrl(bucket, name, expiration); | 
|             log.info("OSS文件上传成功: {}", name); | 
| //            return String.valueOf(url); | 
|             return "http://tjdt.oss-cn-hangzhou.aliyuncs.com/"+name; | 
|         } catch (Exception e){ | 
|             e.printStackTrace(); | 
|         } finally { | 
|             ossClient.shutdown(); | 
|         } | 
|         throw new CoolException("500-上传失败"); | 
|     } | 
|   | 
|     public String upload(InputStream inputStream) { | 
|         return upload(inputStream, ".jpg"); | 
|     } | 
|   | 
|     /** | 
|      * 下载OSS文件 | 
|      */ | 
|     public void download(String name) { | 
|         OSSClient ossClient = new OSSClient(OSS_ENDPOINT, accessKeyId, accessKeySecret); | 
|         try { | 
|             OSSObject ossObject = ossClient.getObject(bucket, name); | 
|             InputStream inputStream = ossObject.getObjectContent(); | 
|             // do transfer | 
|             inputStream.close(); | 
|             log.info("OSS文件下载成功: {}", name); | 
|         } catch (Exception e){ | 
|             e.printStackTrace(); | 
|         } finally { | 
|             ossClient.shutdown(); | 
|         } | 
|     } | 
|   | 
|     /** | 
|      * 删除OSS文件 | 
|      */ | 
|     public boolean delete(String name) { | 
|         OSSClient ossClient = new OSSClient(OSS_ENDPOINT, accessKeyId, accessKeySecret); | 
|         try { | 
|             ossClient.deleteObject(bucket, name); | 
|         } catch (Exception e){ | 
|             e.printStackTrace(); | 
|             return false; | 
|         } finally { | 
|             ossClient.shutdown(); | 
|         } | 
|         return true; | 
|     } | 
|   | 
|     public static void main(String[] args) { | 
|         File file = new File("E:\\tmp\\v2-fbbb97b977b5cebc66dc3cefab0ac981_r.jpg"); | 
|         try { | 
|             InputStream in = new FileInputStream(file); | 
|             OssService ossService = new OssService(); | 
|             ossService.setAccessKeyId("LTAI4GDzr6ioSHuRw2mk22ug"); | 
|             ossService.setAccessKeySecret("84CHL7tF21LbU1qpaP0jn9mIAZP9bv"); | 
|             ossService.setBucket("tjdt"); | 
|             ossService.setEndpoint("http://oss-cn-hangzhou.aliyuncs.com"); | 
|             ossService.setSnowflakeIdWorker(new SnowflakeIdWorker()); | 
|             System.out.println(ossService.upload(in)); | 
|   | 
|         } catch (FileNotFoundException e) { | 
|             e.printStackTrace(); | 
|         } | 
|     } | 
|   | 
| } |