中扬CRM客户关系管理系统
LSH
2023-08-22 564bf7ab6a639c2c4557d35b8fd9b51dca60a738
src/main/java/com/zy/crm/common/service/OssService.java
@@ -17,7 +17,11 @@
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.net.URL;
import java.nio.file.Path;
import java.util.Date;
import java.nio.file.StandardCopyOption;
import java.nio.file.Files;
import java.nio.file.Paths;
/**
 * 阿里云OSS服务类
@@ -78,6 +82,35 @@
        }
        throw new CoolException("500-上传失败");
    }
    public String upload(InputStream inputStream, String suffix,String contentType){
        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");
            objectMetadata.setContentType(contentType);
            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://zhongyang-ftpserver.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");
@@ -86,19 +119,47 @@
    /**
     * 下载OSS文件
     */
    public void download(String name) {
//    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();
//        }
//    }
    public String download(String name) {
        OSSClient ossClient = new OSSClient(OSS_ENDPOINT, accessKeyId, accessKeySecret);
        try {
            OSSObject ossObject = ossClient.getObject(bucket, name);
            InputStream inputStream = ossObject.getObjectContent();
            // do transfer
            // 获取默认下载目录
            String defaultDownloadDir = System.getProperty("user.home") + "/Downloads";
            // 创建文件保存路径
            Path filePath = Paths.get(defaultDownloadDir, name);
            // 将输入流复制到文件
            Files.copy(inputStream, filePath, StandardCopyOption.REPLACE_EXISTING);
            // 关闭输入流
            inputStream.close();
            log.info("OSS文件下载成功: {}", name);
        } catch (Exception e){
            log.info("OSS文件下载成功,保存路径: {}", filePath);
            return ""+filePath;
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            ossClient.shutdown();
        }
        return "";
    }
    /**