public File saveImage(Image image) {
File file = new File("/home/niko/feishu/" + image.getMd5sum() + ".png");
if (file.exists() && file.length() == image.getFilesize()) {
return file;
}
String indexbuf = "";
while (true) {
long media_data = Finance.NewMediaData();
int ret = Finance.GetMediaData(sdk, indexbuf, image.getSdkfileid(), null, null, 5 * 100, media_data);
if (ret != 0) {
log.warn("download attachment response ret [{}]", ret);
Finance.FreeMediaData(media_data);
return null;
}
try {
FileOutputStream outputStream = new FileOutputStream(file, true);
outputStream.write(Finance.GetData(media_data));
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
if (Finance.IsMediaDataFinish(media_data) == 1) {
Finance.FreeMediaData(media_data);
break;
} else {
indexbuf = Finance.GetOutIndexBuf(media_data);
Finance.FreeMediaData(media_data);
}
}
log.info("download [{}] success, file size [{}]", image.getMd5sum(), file.length());
return file;
}
入参为:
Image build = Image.builder()
.md5sum("0f6f32659314f37f1d36ba6eb8f5a1fe")
.filesize(1621628L)
.sdkfileid("CtYBMzA2OTAyMDEwMjA0NjIzMDYwMDIwMTAwMDIwNDM3ZWZjMWY1MDIwMzBmNDI0MzAyMDQ2M2ZjNmRkZjAyMDQ2OTA5MmJiMTA0MjQzNjM0MzAzNTMxNjUzMzMxMmQzMzY0MzY2MzJkMzQ2NTMyMzUyZDM5NjE2MTMwMmQ2MjY1MzQ2NjMxMzQzMzM0MzkzNTMxNjIwMjAxMDAwMjAzMThiZTgwMDQxMDBmNmYzMjY1OTMxNGYzN2YxZDM2YmE2ZWI4ZjVhMWZlMDIwMTAyMDIwMTAwMDQwMBI4TkRkZk1UWTRPRGcxTURjNU9EY3lNelUzTTE4eE1EWXlOVFF6TmpZeFh6RTNOakl5TURnMk9UUT0aIGM5OGRhNmFmYjIyNDFjNDIxY2ZkNDZmYjk0YjJhYzY3")
.build();
15:16:58.747 [http-nio-8080-exec-8] WARN feishu.wechat.FinanceService[89]download attachment response ret [10001]
15:17:03.196 [http-nio-8080-exec-9] WARN feishu.wechat.FinanceService[89]download attachment response ret [10003]