| 
					
				 | 
			
			
				@@ -0,0 +1,331 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+package com.jeeplus.file.service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.aliyun.oss.OSSClient; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.aliyun.oss.model.OSSObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.aliyun.oss.model.PutObjectResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.aliyun.oss.model.SimplifiedObjectMeta; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.jeeplus.sys.utils.Global; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import lombok.extern.slf4j.Slf4j; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.beans.factory.annotation.Value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.io.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.net.URL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Calendar; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Date; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@Slf4j 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@Service 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+public class OSSFileService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Value("${config.accessory.aliyun.aliyunDownloadUrl}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private String aliyunDownloadUrl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Value("${config.accessory.aliyun.aliyunUrl}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private String aliyunUrl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Value("${config.accessory.aliyun.bucketName}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private String bucketName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Value("${qzBucketName}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private String qzBucketName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Value("${config.accessory.aliyun.endpoint}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private String endpoint; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Value("${config.accessory.aliyun.accessKeyId}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private String accessKeyId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Value("${config.accessory.aliyun.accessKeySecret}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private String accessKeySecret; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 上传到OSS服务器  如果同名文件会覆盖服务器上的 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param fileName 文件名称 包括后缀名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return 出错返回"" ,唯一MD5数字签名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public String uploadFile2OSS(InputStream inStream, String fileDir, String fileName) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //初始化OSSClient 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        OSSClient ossClient = new OSSClient(endpoint,accessKeyId,accessKeySecret); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        long start = System.currentTimeMillis(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //上传文件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PutObjectResult putResult = ossClient.putObject(bucketName, fileDir + fileName, inStream); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String ret = putResult.getETag(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (inStream != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                inStream.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (IOException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        long end = System.currentTimeMillis(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        log.info("上传文件到云服务器成功,文件名:{},耗时:{}ms",fileName,end-start); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return ret; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 获得url链接 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param key 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public String getUrl(String key) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        OSSClient ossClient = new OSSClient(endpoint,accessKeyId,accessKeySecret); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 设置URL过期时间为10年  3600l* 1000*24*365*10 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Date expiration = new Date(new Date().getTime() + 3600l * 1000 * 24 * 365 * 10); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 生成URL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        URL url = ossClient.generatePresignedUrl(bucketName, key, expiration); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (url != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return url.toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 阿里云获取临时文件大小 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Long getSimplifiedObjectMeta(String file){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //初始化OSSClient 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        OSSClient ossClient = new OSSClient(endpoint,accessKeyId,accessKeySecret); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        URL url = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SimplifiedObjectMeta simplifiedObjectMeta = new SimplifiedObjectMeta(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            file = file.replace("amp;",""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String aliyunDownload = aliyunDownloadUrl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String aliDownloadUrl = aliyunUrl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String cons = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (file.contains(aliyunDownload)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                cons = aliyunDownload; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }else if (file.contains("http://gangwan-app.oss-cn-hangzhou.aliyuncs.com")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                cons = "http://gangwan-app.oss-cn-hangzhou.aliyuncs.com"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                cons = aliDownloadUrl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String key = file.split(cons+"/")[1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            simplifiedObjectMeta = ossClient.getSimplifiedObjectMeta(bucketName, key); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return simplifiedObjectMeta.getSize(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 文件下载 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param key 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param fileName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public byte[] downBytesByStream(String key, String fileName){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        OSSClient ossClient = new OSSClient(endpoint,accessKeyId,accessKeySecret); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        byte[] bytes = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        BufferedInputStream in = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ByteArrayOutputStream outputStream = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        log.info("开始从云服务器加载文件,文件名:{}",fileName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 创建OSSClient实例 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            long start = System.currentTimeMillis(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            OSSObject ossObject = ossClient.getObject(bucketName, key); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            in = new BufferedInputStream(ossObject.getObjectContent()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            outputStream = new ByteArrayOutputStream(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            byte[] car=new byte[1024]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int L=0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            while((L=in.read(car))!=-1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                outputStream.write(car, 0,L); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            bytes = outputStream.toByteArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            long end = System.currentTimeMillis(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            log.info("从云服务器加载文件成功,文件名:{},耗时:{}ms",fileName,end-start); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }finally { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (in!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    in.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } catch (IOException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (outputStream!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    outputStream.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } catch (IOException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return  bytes; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 附件下载到本地指定文件夹 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param key 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param fileName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void downByStreamSaveLocal(String key, String fileName,String downFileStr){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 创建OSSClient实例 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            OSSClient ossClient = new OSSClient(endpoint,accessKeyId,accessKeySecret); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            OSSObject ossObject = ossClient.getObject(bucketName, key); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            BufferedInputStream in = new BufferedInputStream(ossObject.getObjectContent()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //写入到文件(注意文件保存路径的后面一定要加上文件的名称) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            FileOutputStream fileOut = new FileOutputStream(downFileStr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            BufferedOutputStream bos = new BufferedOutputStream(fileOut); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            byte[] buf = new byte[4096]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int length = in.read(buf); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //保存文件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            while(length != -1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                bos.write(buf, 0, length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                length = in.read(buf); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(bos!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                bos.flush(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                bos.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(in!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                in.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 文件下载(签章系统) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param key 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param fileName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public byte[] downQzBytesByStream(String key, String fileName){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        OSSClient ossClient = new OSSClient(endpoint,accessKeyId,accessKeySecret); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        byte[] bytes = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        BufferedInputStream in = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ByteArrayOutputStream outputStream = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        log.info("开始从云服务器加载文件,文件名:{}",fileName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 创建OSSClient实例 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            long start = System.currentTimeMillis(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            OSSObject ossObject = ossClient.getObject(qzBucketName, key); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            in = new BufferedInputStream(ossObject.getObjectContent()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            outputStream = new ByteArrayOutputStream(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            byte[] car=new byte[1024]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int L=0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            while((L=in.read(car))!=-1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                outputStream.write(car, 0,L); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            bytes = outputStream.toByteArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            long end = System.currentTimeMillis(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            log.info("从云服务器加载文件成功,文件名:{},耗时:{}ms",fileName,end-start); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }finally { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (in!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    in.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } catch (IOException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (outputStream!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    outputStream.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } catch (IOException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return  bytes; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 附件下载到本地指定文件夹(签章系统) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param key 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param fileName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void downQzByStreamSaveLocal(String key, String fileName,String downFileStr){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 创建OSSClient实例 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            OSSClient ossClient = new OSSClient(endpoint,accessKeyId,accessKeySecret); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            OSSObject ossObject = ossClient.getObject(qzBucketName, key); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            BufferedInputStream in = new BufferedInputStream(ossObject.getObjectContent()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //写入到文件(注意文件保存路径的后面一定要加上文件的名称) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            FileOutputStream fileOut = new FileOutputStream(downFileStr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            BufferedOutputStream bos = new BufferedOutputStream(fileOut); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            byte[] buf = new byte[4096]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int length = in.read(buf); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //保存文件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            while(length != -1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                bos.write(buf, 0, length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                length = in.read(buf); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(bos!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                bos.flush(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                bos.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(in!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                in.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 阿里云获取临时文件查看url 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 签章文件查看 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public String getQzFileTemporaryLookUrl(String file){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        URL url = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            OSSClient ossClient = new OSSClient(endpoint,accessKeyId,accessKeySecret); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            file = file.replace("amp;",""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String aliyunUrl = Global.getAliyunUrl(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String aliDownloadUrl = Global.getAliDownloadUrl(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String cons = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (file.contains(aliyunUrl)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                cons = aliyunUrl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }else if (file.contains("http://gangwan-app.oss-cn-hangzhou.aliyuncs.com")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                cons = "http://gangwan-app.oss-cn-hangzhou.aliyuncs.com"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                cons = aliDownloadUrl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String key = file.split(cons+"/")[1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 指定过期时间为24小时。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Date expiration = new Date(new Date().getTime() + 1000 * 60 * 60 * 24 ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            url = ossClient.generatePresignedUrl(qzBucketName, key, expiration); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return url.toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public String datePath(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Calendar date = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String year = String.valueOf(date.get(Calendar.YEAR)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String month = String.valueOf(date.get(Calendar.MONTH)+1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String day = String.valueOf(date.get(Calendar.DAY_OF_MONTH)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String path = "/"+year+"/"+month+"/"+day; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return path; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |