第三方文件链接转存本地OSS链接

发布时间 2023-09-06 14:17:10作者: greatbing

1.项目是基于ruoyi-vue-plus做的,具体代码如下

    public String transToSelfOssFileLink(String outSideUrl) {
        if(StringUtils.isEmpty(outSideUrl)){
            return outSideUrl;
        }
        OssClient storage = OssFactory.instance();
        try {
            URLConnection urlConnection = new URL(outSideUrl).openConnection();
            urlConnection.setConnectTimeout(5000);
            urlConnection.setReadTimeout(5000);
            String contentType = urlConnection.getContentType();
            if(contentType == null){
                return outSideUrl;
            }
            String[] split = contentType.split("/");
            if(split.length < 2){
                return outSideUrl;
            }
            InputStream inputStream = urlConnection.getInputStream();
            String fileName = DateUtil.format(new Date(), "yyyy/MM/") +
                "shiqiao/" +
                StrUtil.uuid() +
                "." +
                split[1];
            UploadResult uploadResult = storage.upload(inputStream, fileName,contentType);
            if(uploadResult == null){
                return outSideUrl;
            }
            return uploadResult.getUrl();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }