Fx.file
Fx.file:处理和文件有关的API
1. 给图片加水印
Fx.file.watermark(<String nPath>, <List words>)
参数说明
| 参数 | 类型 | 说明 | 
|---|---|---|
| nPath | String | 图片的npath | 
| words | List | 水印的内容列表 | 
返回值类型
APIResult
返回值说明
Map
Java举例
APIResult ret = Fx.file.watermark("N_202003_04_c706c31390b747408bfb5eef3b031f34",Lists.newArrayList("test123","tyrdyz")); //文件的npath可以通过find函数查出
Groovy举例
def ret = Fx.file.watermark("N_202003_04_c706c31390b747408bfb5eef3b031f34",["test123","tyrdyz"]) //文件的npath可以通过find函数查出
2. 文件上传
Fx.file.uploadFile(<String extensionName>, <int fileSize>, <byte[] fileBytes>, <int userId>)
参数说明
| 参数 | 类型 | 说明 | 
|---|---|---|
| extensionName | String | 文件扩展名 | 
| fileSize | int | 文件大小 | 
| fileBytes | byte[] | 文件内容byte数组 | 
| userId | int | 可选参数,上传人id | 
返回值类型
APIResult
返回值说明
Map
Java举例
String text = "aaa";
byte[] byteData = Strings.toUTF8Bytes(text);
APIResult ret = Fx.file.uploadFile(".txt", byteData.length, byteData, 1000);
Groovy举例
def text = "aaa" as String
def byteData = Strings.toUTF8Bytes(text)
def ret = Fx.file.uploadFile(".txt", byteData.size(), byteData, 1000)
3. 把外部接口的文件上传
Fx.file.uploadFileByStream(<Request request>)
参数说明
| 参数 | 类型 | 说明 | 
|---|---|---|
| request | Request | 网络请求Request | 
返回值类型
APIResult
返回值说明
APIResult
Java举例
Request request = Request.builder()
  .method("POST")
  .url('http://httpbin.org/post')
  .timeout(7000)
  .retryCount(3)
  .body(body)
  .build()
APIResult ret = Fx.getFile().uploadFileByStream(request)
Groovy举例
//构造Request请求
Request request = Request.builder()
  .method("POST")
  .url('http://httpbin.org/post')
  .timeout(7000)
  .retryCount(3)
  .body(body)
  .build()
def ret = Fx.file.uploadFileByStream(request)
4. 文件下载
Fx.file.downloadFile(<String nPath>)
参数说明
| 参数 | 类型 | 说明 | 
|---|---|---|
| nPath | String | 文件的nPath | 
返回值类型
APIResult
返回值说明
FileDownloadData
Java举例
APIResult ret = Fx.getFile().downloadFile("N_202007_12_001731386ccf40698523c39744b0161c");
FileDownloadData fileDowloadData = (FileDownloadData)ret.getData();
byte[] fileData = fileDowloadData.getFileData();
String str = Strings.toUTF8String(fileData);
Groovy举例
def ret = Fx.file.downloadFile("N_202007_12_001731386ccf40698523c39744b0161c")
def fileDowloadData = ret[1]
def fileData = fileDowloadData['fileData'] as byte[]
def str = Strings.toUTF8String(fileData) as String
5. 文件打包发送给指定用户
Fx.file.packedFile(<List files>, <List userIds>)
参数说明
| 参数 | 类型 | 说明 | 
|---|---|---|
| files | List | 构建文件的列表 | 
| userIds | List | 一步打包成功后,给人员提醒 | 
返回值类型
APIResult
返回值说明
Map
Java举例
//定义需要打包发送的文件,参数分别为:打包后的文件名、对象下的文件路径(通过find函数可查询到)、文件后缀、文件打包后的包内存放路径
UserFile file = UserFile.of("文件1", "N_201907_31_57a33fb0c999447bb93fa1e4cc6e649d", "jpg", "/image");
List packFileList = Lists.newArrayList(file);
//把fileList中的文件打包后,通过人员id参数发送给指定人
final APIResult result = Fx.file.packedFile(packFileList, ["1000"]);
Groovy举例
//定义需要打包发送的文件,参数分别为:打包后的文件名、对象下的文件路径(通过find函数可查询到)、文件后缀、文件打包后的包内存放路径
UserFile file = UserFile.of("文件1","N_201907_31_57a33fb0c999447bb93fa1e4cc6e649d","jpg","/image")
List packFileList = []
packFileList.add(file)
//把fileList中的文件打包后,通过人员id参数发送给指定人
final APIResult result = Fx.file.packedFile(packFileList, Lists.newArrayList("1000"));
6. 无权限文件下载,获取文件下载token
Fx.file.createFileShareTokens(<int expireMinute>, <List pathList>)
参数说明
| 参数 | 类型 | 说明 | 
|---|---|---|
| expireMinute | int | 过期时间,单位分钟,最大支持15分钟 | 
| pathList | List | 文件nPath列表 | 
返回值类型
APIResult
返回值说明
Map
Java举例
//获取无权限文件的shareToken
List paths = Lists.newArrayList("N_202102_03_54c5ede542154b748c6f9381d96a1956");
//获取无权限文件的shareToken
APIResult ret = Fx.file.createFileShareTokens(5, paths);
if (ret.isError()) {
    log.info(ret.message());
} else {
    log.info(ret.getData());
}
//获取到shareToken后用下列链接下载文件:
////www.sxgtbz.com/FSC/N/FileShare/DownloadFileBySharedTokenV2?sharedToken=6AA905C78D85C91D796261356AF7467E53719536C4515B3328F7D65FC8476DC777DE783881DF4588EB6B9F0AEEF0F46060EA5D49185941B59C4531F5967FA07B7424EDF8BF20F11F6AE89573CF7F96735EC0284E1F637AE3&name=111.jpg
Groovy举例
//获取无权限文件的shareToken
List paths = ['N_202102_03_54c5ede542154b748c6f9381d96a1956']
//获取无权限文件的shareToken
def(boolean error, Map data, String  errorMessage)  = Fx.file.createFileShareTokens(5, paths)
if (error) {
log.info(errorMessage)
} else {
log.info(data)
}
//获取到shareToken后用下列链接下载文件:
////www.sxgtbz.com/FSC/N/FileShare/DownloadFileBySharedTokenV2?sharedToken=6AA905C78D85C91D796261356AF7467E53719536C4515B3328F7D65FC8476DC777DE783881DF4588EB6B9F0AEEF0F46060EA5D49185941B59C4531F5967FA07B7424EDF8BF20F11F6AE89573CF7F96735EC0284E1F637AE3&name=111.jpg
7. 获取附件预签名url
Fx.file.getPresignedUrl(<List paths>, <int expire>)
参数说明
| 参数 | 类型 | 说明 | 
|---|---|---|
| paths | List | 文件npath集合 | 
| expire | int | url有效期(单位:秒) | 
返回值类型
APIResult
返回值说明
List
Java举例
List<String>npaths = Lists.newArrayList("N_202207_06_2b51df0dd11043ee9c0ad341742f95bb");
int expire = 100;
APIResult ret = Fx.file.getPresignedUrl(npaths, expire);
if (ret.isError()) {
    log.info(ret.message());
} else {
    log.info(ret.getData());
}
Groovy举例
List npaths = ["N_202207_06_2b51df0dd11043ee9c0ad341742f95bb"]
int expire = 100
def(boolean error, List data, String message) = Fx.file.getPresignedUrl(npaths, expire)
if (error) {
  log.info("error: " + message)
} else {
  log.info(data)
}
8. 转换为无权限npath
Fx.file.convertPath(<String path>)
参数说明
| 参数 | 类型 | 说明 | 
|---|---|---|
| path | String | 文件npath | 
返回值类型
APIResult
返回值说明
Map
Java举例
def (Boolean error, Map data, String message) = Fx.file.convertPath("N_202208_01_3628e0ba470b4086aa04dd8f3e93ed5a")
if (error) {
  log.info("error :" + message)
} else {
  log.info(data)
}
Groovy举例
def (Boolean error, Map data, String message) = Fx.file.convertPath("N_202208_01_3628e0ba470b4086aa04dd8f3e93ed5a")
if (error) {
  log.info("error :" + message)
} else {
  log.info(data)
}