java获取网络图片上传到OSS的方法

 更新时间:2018年10月23日 09:13:20   作者:李秀才  
这篇文章主要为大家详细介绍了java获取网络图片上传到OSS,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

OSS不支持通过一个网络地址来上传图片,所以若想将网络上的图片上传到OSS上需要走点弯路。

1、通过链接将图片下载到本地的一个文件夹下面

2、用OSS上传该文件夹下的文件

3、上传完成后删除本地的文件

具体代码如下:

 //获取当前项目的绝对路径 
 public static String getTomcatPath(){ 
  String nowpath;   
  String tempdir; 
  nowpath=System.getProperty("user.dir"); 
  tempdir=nowpath.replace("bin", ""); //把bin 文件夹变到 webapps文件里面 
  return tempdir; 
 } 
 /**
 * 将图片下载下来后,上传到OSS
 * @param imgLink
 * @param downloadPath
 * @return
 * @throws Exception
 */
 private String downloadImagAndUploadToOss(String imgLink,String downloadPath) throws Exception{
  List<String> urlList=new ArrayList<String>();
  urlList.add(imgLink);
  String imgName=DateUtil.formatDate(new Date(), "yyyyMMddhhmmss")+UuidUtil.createUUID()+".jpg";
  downloadPicture(urlList,downloadPath,imgName);
 String key="carAlbum/"+imgName;
 String imgUrl=OSSObjectAPI.genOssPicUrl(OSSObjectAPI.XI_AN_BUCKET_NAME,OSSObjectAPI.XIAN_ACCESS_ID,OSSObjectAPI.XIAN_ACCESS_KEY,
  "http://oss-cn-zhangjiakou.aliyuncs.com/",downloadPath+imgName,key);
 FileUtil.delete(downloadPath+imgName);
 return imgUrl;
 } 
 /** 
  * 传入要下载的图片的url列表,将url所对应的图片下载到本地 
  * @param urlList 
  * @throws Exception 
  */ 
 private void downloadPicture(List<String> urlList,String path,String imgName) throws Exception { 
  if(urlList==null||urlList.size()==0){
   return;
  }
  URL url = null; 
  FileOutputStream fileOutputStream =null;
  InputStream inputStream =null;
  for (String urlString : urlList) { 
   try { 
     url = new URL(urlString);
     HttpURLConnection connection = (HttpURLConnection) url.openConnection();
     connection.addRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0");
     connection.setConnectTimeout(10 * 1000);
     connection.setReadTimeout(15 * 1000);
     inputStream = connection.getInputStream();
     byte[] buffer = new byte[1024];
     int length;
     fileOutputStream= new FileOutputStream(path+ File.separator+ imgName);
     while ((length = inputStream.read(buffer)) != -1) {
      fileOutputStream.write(buffer, 0, length);
     }
   } catch (Exception e) { 
    e.printStackTrace(); 
   } finally{
    inputStream.close();
    fileOutputStream.flush();
    fileOutputStream.close(); 
   }
  } 
 
 } 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java出现中文乱码问题分析及解决方案

    Java出现中文乱码问题分析及解决方案

    在Java开发中,处理中文乱码是一个常见的问题,由于字符集和编码的复杂性,开发者可能面临各种导致乱码的情况,正确地处理中文字符集对于确保应用程序的可靠性和国际化至关重要,本文给大家介绍了Java中文乱码分析及解决方案,需要的朋友可以参考下
    2024-02-02
  • Java微信公众平台开发(2) 微信服务器post消息体的接收

    Java微信公众平台开发(2) 微信服务器post消息体的接收

    这篇文章主要为大家详细介绍了Java微信公众平台开发第二步,微信服务器post消息体的接收,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • 解决OkHttp接收gzip压缩数据返回乱码问题

    解决OkHttp接收gzip压缩数据返回乱码问题

    这篇文章主要介绍了解决OkHttp接收gzip压缩数据返回乱码问题,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • IDEA的Swing可视化插件JFormDesigner详解

    IDEA的Swing可视化插件JFormDesigner详解

    JFormDesigner是一个专业的软件应用程序,专门用于帮助您开发Java Swing用户界面,而无需具备编程技能。它可作为独立实用程序使用,也可以将其用作各种IDE的插件,本文给大家介绍idea Swing可视化插件,感兴趣的朋友一起看看吧
    2022-06-06
  • Spring MVC整合 freemarker及使用方法

    Spring MVC整合 freemarker及使用方法

    Spring MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,这篇文章主要介绍了Spring MVC整合 freemarker及使用方法,需要的朋友可以参考下
    2019-07-07
  • @JsonSerialize不起作用的解决方案

    @JsonSerialize不起作用的解决方案

    这篇文章主要介绍了@JsonSerialize不起作用的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • Spring MVC处理参数中的枚举类型通用实现方法

    Spring MVC处理参数中的枚举类型通用实现方法

    这篇文章主要给大家介绍了关于Spring MVC处理参数中的枚举类型通用实现方法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧
    2018-11-11
  • Java异常处理学习心得

    Java异常处理学习心得

    本篇文章给大家详细讲述了学习Java异常处理学习的心得以及原理介绍,对此有兴趣的朋友参考下吧。
    2018-01-01
  • Java NIO 中Buffer 缓冲区解析

    Java NIO 中Buffer 缓冲区解析

    这篇文章主要介绍了Java NIO 中Buffer 缓冲区,Java NIO 中的 Buffer 用于和 NIO 通道进行交互。数据是通道读取到缓冲区,从缓冲区写入到通道中的。下面内容希望帮助带大家理解
    2022-02-02
  • 介绍Jersey-Jersey入门基础

    介绍Jersey-Jersey入门基础

    REST不是一种新的技术,而仅仅是一个理论,实践这样的理论可以让我们的应用更加先进。
    2013-02-02

最新评论