Observable.fromIterable(itemImageMapper.findLostUrlItemImageList(i, i + 100))
.filter(itemImageDO -> StringUtils.isNotEmpty(itemImageDO.getOriUrl()))
.observeOn(Schedulers.io())
.map(itemImageDO -> {
log.info("Randy-download-run on :" + Thread.currentThread().getName());
File imgFile = File.createTempFile("FIX_IMG_", ".jpg");
try (InputStream inputStream = new URL(itemImageDO.getOriUrl()).openStream()) {
Path target = Paths.get(imgFile.getParent(), imgFile.getName());
Files.copy(inputStream, target, StandardCopyOption.REPLACE_EXISTING);
QiNiuUploadResp qiNiuUploadResp = qiniuUploadService.upload(imgFile.getParent() + File.separator, imgFile.getName());
itemImageDO.setUrl(qiNiuUploadResp.getPath());
} catch (IOException e) {
log.warn("文件处理失败", e);
} finally {
imgFile.deleteOnExit();
}
return itemImageDO;
})
.filter(itemImageDO -> StringUtils.isNotEmpty(itemImageDO.getUrl()))
.observeOn(Schedulers.single())
.map(itemImageDO -> {
log.info("Randy-updateQiNiuUrl-run on :" + Thread.currentThread().getName());
int ret = itemImageMapper.updateQiNiuUrl(itemImageDO.getId(), itemImageDO.getUrl());
return ret;
})
.subscribe();
使用NIO快速下载文件
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 现在很多朋友都把资料往各种云盘上传,例如百度云盘,但是需要下载的时候,很蛋疼,需要用百度云盘客户端(大文件),使用...
- 在项目里遇到附件的下载和本地查看功能,附件有可能是word pdf 图片 Excel表格 甚至是ppt 有点变态吧...
- 原文:软测小生ruancexiaosheng 关注领取福利教程CSDN博客原文 上一篇博客写到当不能使用Sele...