Java下载https文件上传到阿里云oss服务器

今天做了一个从Https链接中下载音频并且上传到OSS服务器,记录一下希望大家也少走弯路。

一共两个类:

1 、实现自己的证书信任管理器类

/**
* @author mazhq
* @Title: X509TrustUtiil
* @ProjectName: zeus
* @Description: 证书信任管理器类
* @date 2019/2/18 15:14
*/
public class X509TrustUtil implements X509TrustManager {
@Override
public void checkClientTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException { } @Override
public void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException { } @Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0];
}
}

  

2、阿里云上传工具类

/**
* @author mazhq
* @Title: OSSUtil
* @ProjectName: zeus
* @Description: TODO
* @date 2019/2/18 14:07
*/
public class OSSUtil {
/**
* @Description: 上传文件到阿里云
* @param recordingLink
* @param fileName
* @return void
* @exception
* @author mazhq
* @date 2019/2/18 14:30
*/
public static String uploadRecording(JSONObject ossJson, String recordingLink, String fileName){
try {
// Endpoint以杭州为例,其它Region请按实际情况填写。
String endpoint = ""; String bucketServer;
String bucketName;
bucketName = "dev-uploadtoimages";
endpoint = "http://oss-devimage.xxxx.com/";
bucketServer = "http://dev-uploadtoimages.oss-cn-beijing.aliyuncs.com/"; // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
String accessKeyId = ossJson.getString("accessKeyId");
String accessKeySecret = ossJson.getString("accessKeySecret");
String security = ossJson.getString("security"); // 创建OSSClient实例。
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret, security); // 上传网络流。
SSLContext sslcontext = SSLContext.getInstance("SSL", "SunJSSE");
sslcontext.init(null, new TrustManager[] { new X509TrustUtil() }, new java.security.SecureRandom());
URL url = new URL(recordingLink);
HostnameVerifier ignoreHostnameVerifier = new HostnameVerifier() {
public boolean verify(String s, SSLSession sslsession) {
System.out.println("WARNING: Hostname is not matched for cert.");
return true;
}
};
HttpsURLConnection.setDefaultHostnameVerifier(ignoreHostnameVerifier);
HttpsURLConnection.setDefaultSSLSocketFactory(sslcontext.getSocketFactory());
HttpsURLConnection urlCon = (HttpsURLConnection) url.openConnection();
urlCon.setConnectTimeout(6000);
urlCon.setReadTimeout(6000);
int code = urlCon.getResponseCode();
if (code != HttpURLConnection.HTTP_OK) {
throw new Exception("文件读取失败");
}
// 读文件流
InputStream inputStream = urlCon.getInputStream(); // 上传文件 (上传文件流的形式)
ossClient.putObject(bucketName, "recording/"+fileName, inputStream); // 关闭OSSClient。
ossClient.shutdown(); return bucketServer+"recording/"+fileName;
} catch (IOException e) {
e.printStackTrace();
}catch (Exception e){
e.printStackTrace();
} return null;
} }

  

结论:

两个类搭配着用,完美解决下载https文件上传到阿里oss返回上传之后路径。

最新文章

  1. js 滚动的文字(走马灯)
  2. SQL 存储过程 解析XML
  3. 【Unity3D】计算二维向量夹角(-180到180)
  4. redis windows下的环境搭建
  5. iOS UITableView的分割线短15像素,移动到最左边的方法(iOS8)
  6. ubuntu linux 使用常见问题
  7. 字符串转到js对象
  8. spring mvc 介绍
  9. .NET 面试题(1)
  10. matlab unique 顺序不变
  11. 汉化DevExpress
  12. FCC JS基础算法题(5):Return Largest Numbers in Arrays(找出多个数组中的最大数)
  13. bootstrap 常用class
  14. 怎样从外网访问内网Tornado
  15. [Web 前端] CSS篇之2. 清除浮动,什么时候需要清除浮动,清除浮动都有哪些方法
  16. C++系统时间及字符串转换参考资料
  17. gradle下的第一个SpringMVC应用
  18. winform打包发布安装包详解..
  19. Java集合——LinkedList源码详解
  20. Unity LineRenderer制作画版

热门文章

  1. FormatMessage函数
  2. QQ 客服设置
  3. 常用jquery记录
  4. mysql性能优化1
  5. Linux服务器---apache配置文件
  6. 如何在 Linux 中挂载 ISO 文件
  7. PHP 开发 api 接口安全验证
  8. 过滤Windows文件名中的非法字符
  9. lambda表达式学习
  10. 文件IO和标准IO的区别【转】