JAVA Http接口获取文件下载流,将下载的文件上传阿里云

 需要根据,业务数据,将存在第三方平台的数据,下载至本地,或转存阿里云OSS中。

@ApiOperation(value = "下载录音", notes = "")
    @GetMapping("/download")
    public CommonResult<?> download(String callId) {
        final List<DpxdataTelCall> list = telCallService.lambdaQuery()
                .isNotNull(DpxdataTelCall::getCallId)
                .isNull(DpxdataTelCall::getCallFile)
                .eq(StringUtils.isNotBlank(callId), DpxdataTelCall::getCallId, callId)
                .list();
        URL url = null;
        HttpURLConnection conn = null;
        InputStream inputStream = null;
        BufferedReader br = null;
        String urlStr = "";
        StringBuffer sb = null;
        List<DpxdataTelCall> updateList = new ArrayList<>();
        for (DpxdataTelCall item : list) {
            try {
                urlStr = "http://m.icsoc.net/v2/wintelapi/record/playrecord?vcc_code=" + "code" + "&call_id=" + item.getCallId();
                url = new URL(urlStr);
                conn = (HttpURLConnection) url.openConnection();
                // 设置超时间为10秒
                conn.setConnectTimeout(10 * 1000);
                //获取输入流
                inputStream = conn.getInputStream();
                sb = new StringBuffer();
                br = new BufferedReader(new InputStreamReader(inputStream));
                String line = null;
                while ((line = br.readLine()) != null) {
                    line = new String(line.getBytes(), "utf-8");
                    sb.append(line);
                }
                if (sb.toString().indexOf("code") == -1) {
                    urlStr = "http://m.icsoc.net/v2/wintelapi/record/playrecord?vcc_code=" + "code" + "&call_id=" + item.getCallId();
                    url = new URL(urlStr);
                    conn = (HttpURLConnection) url.openConnection();
                    // 设置超时间为10秒
                    conn.setConnectTimeout(10 * 1000);
                    //获取输入流
                    inputStream = conn.getInputStream();
                    final String telFile = OssBootUtil.upload(inputStream, "upload/tel/" + item.getCallId() + "_" + System.currentTimeMillis() + ".mp3");
                    item.setCallFile(telFile);
                    updateList.add(item);
                    log.info("下载录音文件 -> {} ,{}", item.getPersonId(), item.getCallId());
                }
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (br != null) {
                    try {
                        br.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
        if (inputStream != null) {
            try {
                inputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        if (CollectionUtil.isNotEmpty(updateList)) {
            telCallService.updateBatchById(updateList);
        }
        return CommonResult.success("下载录音文件数量" + updateList.size());
    }

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值