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后用下列链接下载文件:
//http://www.fxiaoke.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后用下列链接下载文件:
//http://www.fxiaoke.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)
}