美文网首页
使用NIO快速下载文件

使用NIO快速下载文件

作者: RandyZhang | 来源:发表于2018-08-02 12:07 被阅读0次
    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快速下载文件

          本文链接:https://www.haomeiwen.com/subject/tpmjvftx.html