阿里云OSS文件下载功能简易实现

转载请注明来源-作者@loongshawn:http://blog.csdn.net/loongshawn/article/details/69396768,建议读者阅读原文,确保获得完整的信息

1.场景说明

将阿里云OSS文件下载至本地。

2.操作方法

提供2中文件下载方式:1、原生的输入输出流处理;2、commons-io-2.4-sources.jar包中的FileUtils.copyURLToFile现成方法处理。

2.1方式一

利用原生的输入输出流处理。

第一步:获取OSS文件链接,读取输入流

// 截取片段代码
URL url = new URL(urllink);
//打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream。 
InputStream in = url.openStream();                      
String gaokuai_url = HttpUpload.uploadOSS(in, fileName);

// logger.info("FeedbackServiceImpl.downloadFilesFromUrl gaokuai_url:" + gaokuai_url);                      
if(!gaokuai_url.equals("")){
    if(sb.length() >0){
        sb.append(tag + gaokuai_url);
    }else{
        sb.append(gaokuai_url);
    }                           
}

第二步:文件下载

public static void download(InputStream inputStream){

        try {
            File file = new File("/Users/loongshawn/Downloads/Penguins.jpg");
            OutputStream outputStream = new FileOutputStream(file);

            int byteCount = 0;
            //1M逐个读取
            byte[] bytes = new byte[1024*1024];
            while ((byteCount = inputStream.read(bytes)) != -1){
                outputStream.write(bytes, 0, byteCount);
            }

            inputStream.close();
            outputStream.close();
        } catch (FileNotFoundException e){
            e.printStackTrace();
        } catch (IOException e){
            e.printStackTrace();
        }
}

2.2方式二

利用到了commons-io-2.4-sources.jar包中的FileUtils.copyURLToFile方法。

public static void method2(String urllink){

        try {
            URL httpurl = new URL(urllink);
            File file = new File("/Users/loongshawn/Downloads/Penguins.jpg");
            FileUtils.copyURLToFile(httpurl, file);
        } catch (MalformedURLException e){
            e.printStackTrace();
        } catch (IOException e){
            e.printStackTrace();
        }
}

3.效果展示

测试demo如下,提供了两种文件下载的方式,上述两种方式均测试可用,但有一点需要说明,OSS文件有访问权限设置,本例中的OSS没有设置访问限制。

public static void main(String[] args){

        System.out.println("HelloWorld!");

        String urllink = "http://XXXX/attachment/201704/06/20170406163542/20170406Penguins.jpg";

        method1(urllink);
        method2(urllink);
}

public static void method1(String urllink){

        try {
            URL url = new URL(urllink);
            //打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream。
            InputStream in = url.openStream();
            download(in);

        } catch (IOException e){

        }
    }

    public static void method2(String urllink){

        try {
            URL httpurl = new URL(urllink);
            File file = new File("/Users/loongshawn/Downloads/Penguins.jpg");
            FileUtils.copyURLToFile(httpurl, file);
        } catch (MalformedURLException e){
            e.printStackTrace();
        } catch (IOException e){
            e.printStackTrace();
        }

}

下载结果:

阿里云OSS文件下载功能简易实现_第1张图片

你可能感兴趣的:(JAVA,Cloud,Computing)