dangsn
2024-12-03 d0ae279ff3b83358d1c07f4481a041c4ad335026
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
package com.vci.web.service;
 
import com.vci.pagemodel.VciFileObjectVO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseResult;
import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.io.ZipOutputStream;
 
import java.util.Collection;
import java.util.Map;
 
/**
 * 文件下载的服务接口
 * 是指把文件从文件存储服务上下载,不是直接下载到浏览器
 * @author weidy
 * @date 2020/3/12
 */
public interface VciFileDownloadServiceI {
 
    /**
     * 根据主键下载文件,会下载到默认的临时文件夹下
     * @param fileOid 文件的主键
     * @return 文件在本地的全路径,注意以http://或者以https://开头的不会下载,需要自行判断
     * @throws VciBaseException 参数为空或者文件出错的时候会抛出异常
     */
    String downloadFileByOid(String fileOid) throws VciBaseException;
 
    /**
     * 根据主键下载文件
     * @param clientPath 客户端的文件夹
     * @param fileOid 文件的主键
     * @return 文件在本地的全路径,注意以http://或者以https://开头的不会下载,需要自行判断
     * @throws VciBaseException 参数为空或者文件出错的时候会抛出异常
     */
    String downloadFileByOid(String clientPath, String fileOid) throws VciBaseException;
 
    /**
     * 根据主键批量下载文件,会下载到默认的临时文件夹下
     * @param fileOidCollection 文件集合
     * @return  key是文件的主键,value是文件在本地的全路径,注意以http://或者以https://开头的不会下载,需要自行判断
     * @throws VciBaseException 参数为空或者文件出错的时候会抛出异常
     */
    Map<String,String> batchDownloadFileByOids(Collection<String> fileOidCollection) throws VciBaseException;
 
    /**
     * 根据主键批量下载文件
     * @param clientPath 客户端的文件夹
     * @param fileOidCollection 文件集合
     * @return  key是文件的主键,value是文件在本地的全路径,注意以http://或者以https://开头的不会下载,需要自行判断
     * @throws VciBaseException 参数为空或者文件出错的时候会抛出异常
     */
    Map<String,String> batchDownloadFileByOids(String clientPath, Collection<String> fileOidCollection) throws VciBaseException;
 
    /**
     * 根据主键批量下载文件,下载模型文件不能用这个方法
     * @param clientPath 客户端的文件夹
     * @param fileOidCollection 文件集合
     * @param sameFileUseOidFolder 当相同文件时,使用主键来做文件夹区分
     * @return  key是文件的主键,value是文件在本地的全路径,注意以http://或者以https://开头的不会下载,需要自行判断
     * @throws VciBaseException 参数为空或者文件出错的时候会抛出异常
     */
    Map<String,String> batchDownloadFileByOids(String clientPath, Collection<String> fileOidCollection,boolean sameFileUseOidFolder) throws VciBaseException;
 
    /**
     * 根据文件对象下载文件
     * @param fileObjectVO 文件的显示对象
     * @return 文件在本地的全路径,注意以http://或者以https://开头的不会下载,需要自行判断
     * @throws VciBaseException  参数为空或者文件出错的时候会抛出异常
     */
    String downloadFileByFileObject(VciFileObjectVO fileObjectVO) throws VciBaseException;
 
    /**
     * 根据文件对象下载文件
     * @param clientPath 客户端的文件夹
     * @param fileObjectVO 文件的显示对象
     * @return 文件在本地的全路径,注意以http://或者以https://开头的不会下载,需要自行判断
     * @throws VciBaseException  参数为空或者文件出错的时候会抛出异常
     */
    String downloadFileByFileObject(String clientPath,VciFileObjectVO fileObjectVO) throws VciBaseException;
 
    /**
     * 根据主键批量下载文件,会下载到默认的文件夹下
     * @param fileObjectVOCollection 文件显示对象集合
     * @return  key是文件的主键,value是文件在本地的全路径,注意以http://或者以https://开头的不会下载,需要自行判断
     * @throws VciBaseException 参数为空或者文件出错的时候会抛出异常
     */
    Map<String,String> batchDownloadFileByFileObject( Collection<VciFileObjectVO> fileObjectVOCollection) throws VciBaseException;
 
    /**
     * 根据主键批量下载文件
     * @param clientPath 客户端的文件夹
     * @param fileObjectVOCollection 文件显示对象集合
     * @return  key是文件的主键,value是文件在本地的全路径,注意以http://或者以https://开头的不会下载,需要自行判断
     * @throws VciBaseException 参数为空或者文件出错的时候会抛出异常
     */
    Map<String,String> batchDownloadFileByFileObject(String clientPath, Collection<VciFileObjectVO> fileObjectVOCollection) throws VciBaseException;
 
    /**
     * 下载文件到zip文件中
     * @param zipFileName zip文件文件路径
     * @param fileOid 文件主键
     * @throws VciBaseException 查询出错的时候会抛出异常
     */
    void downloadZipFileByOids(String zipFileName, String fileOid) throws VciBaseException;
 
    /**
     * 下载文件到zip文件中
     * @param zipFile zip文件
     * @param fileOid 文件主键
     * @throws VciBaseException 查询出错的时候会抛出异常
     */
    void downloadZipFileByOids(ZipFile zipFile, String fileOid) throws VciBaseException;
 
    /**
     * 下载文件到zip文件中
     * @param zipOutputStream zip文件输出流
     * @param fileOid 文件主键
     * @throws VciBaseException 查询出错的时候会抛出异常
     */
    void downloadZipStreamByOids(ZipOutputStream zipOutputStream, String fileOid) throws VciBaseException;
 
 
    /**
     * 下载文件到zip文件中
     * @param zipFileName zip文件名称
     * @param fileOidCollection 文件主键集合
     * @throws VciBaseException 查询出错的时候会抛出异常
     */
    void downloadZipFileByOids(String zipFileName, Collection<String> fileOidCollection) throws VciBaseException;
 
    /**
     * 下载文件到zip文件中
     * @param zipFile zip文件
     * @param fileOidCollection 文件主键集合
     * @throws VciBaseException 查询出错的时候会抛出异常
     */
    void downloadZipFileByOids(ZipFile zipFile, Collection<String> fileOidCollection) throws VciBaseException;
 
    /**
     * 下载文件到zip文件中
     * @param zipOutputStream zip文件输出流
     * @param fileOidCollection 文件主键集合
     * @throws VciBaseException 查询出错的时候会抛出异常
     */
    void downloadZipStreamByOids(ZipOutputStream zipOutputStream, Collection<String> fileOidCollection) throws VciBaseException;
 
    /**
     * 下载文件到zip文件中,下载模型文件切记不要用这个
     * @param zipFile zip文件
     * @param fileOidCollection 文件主键集合
     * @param sameFileUseOidFolder 当相同文件时,使用主键来做文件夹区分
     * @throws VciBaseException 查询出错的时候会抛出异常
     */
    void downloadZipFileByOids(ZipFile zipFile, Collection<String> fileOidCollection,boolean sameFileUseOidFolder) throws VciBaseException;
 
    /**
     * 下载文件到zip文件中,下载模型文件切记不要用这个
     * @param zipOutputStream zip文件输出流
     * @param fileOidCollection 文件主键集合
     * @param sameFileUseOidFolder 当相同文件时,使用主键来做文件夹区分
     * @throws VciBaseException 查询出错的时候会抛出异常
     */
    void downloadZipStreamByOids(ZipOutputStream zipOutputStream, Collection<String> fileOidCollection,boolean sameFileUseOidFolder) throws VciBaseException;
 
    /**
     * 分片下载文件
     * @param fileOid 文件主键
     * @param offSet 偏移量
     * @return 数据的二进制信息
     * @throws VciBaseException 下载的时候出现错误的时候会抛出异常
     */
    BaseResult<byte[]> sectionDownloadByFileOid(String fileOid, long offSet) throws VciBaseException;
 
    /**
     * 删除文件
     * @param fileOidCollection 文件主键集合
     * @return 执行结果
     * @throws VciBaseException 载的时候出现错误的时候会抛出异常
     */
    BaseResult deleteFile(Collection<String> fileOidCollection) throws VciBaseException;
 
    /**
     * 使用卷服务上的文件路径来下载
     * @param filePath 卷服务里的路径,主要是xxx:yyy的方式
     * @return 下载后的地址
     * @throws VciBaseException 下载出错会抛出异常
     */
    String downloadFileByPath(String filePath) throws VciBaseException;
}