Java下载https文件并上传阿里云oss服务器
这篇文章主要介绍了Java下载https文件并上传到阿里云oss服务器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
今天做了一个从Https链接中下载音频并且上传到OSS服务器,记录一下希望大家也少走弯路。
一共两个类:
1、实现自己的证书信任管理器类
/**
*@authormazhq
*@Title:X509TrustUtiil
*@ProjectName:zeus
*@Description:证书信任管理器类
*@date2019/2/1815:14
*/
publicclassX509TrustUtilimplementsX509TrustManager{
@Override
publicvoidcheckClientTrusted(X509Certificate[]x509Certificates,Strings)throwsCertificateException{
}
@Override
publicvoidcheckServerTrusted(X509Certificate[]x509Certificates,Strings)throwsCertificateException{
}
@Override
publicX509Certificate[]getAcceptedIssuers(){
returnnewX509Certificate[0];
}
}
2、阿里云上传工具类
/**
*@authormazhq
*@Title:OSSUtil
*@ProjectName:zeus
*@Description:TODO
*@date2019/2/1814:07
*/
publicclassOSSUtil{
/**
*@Description:上传文件到阿里云
*@paramrecordingLink
*@paramfileName
*@returnvoid
*@exception
*@authormazhq
*@date2019/2/1814:30
*/
publicstaticStringuploadRecording(JSONObjectossJson,StringrecordingLink,StringfileName){
try{
//Endpoint以杭州为例,其它Region请按实际情况填写。
Stringendpoint="";
StringbucketServer;
StringbucketName;
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账号。
StringaccessKeyId=ossJson.getString("accessKeyId");
StringaccessKeySecret=ossJson.getString("accessKeySecret");
Stringsecurity=ossJson.getString("security");
//创建OSSClient实例。
OSSClientossClient=newOSSClient(endpoint,accessKeyId,accessKeySecret,security);
//上传网络流。
SSLContextsslcontext=SSLContext.getInstance("SSL","SunJSSE");
sslcontext.init(null,newTrustManager[]{newX509TrustUtil()},newjava.security.SecureRandom());
URLurl=newURL(recordingLink);
HostnameVerifierignoreHostnameVerifier=newHostnameVerifier(){
publicbooleanverify(Strings,SSLSessionsslsession){
System.out.println("WARNING:Hostnameisnotmatchedforcert.");
returntrue;
}
};
HttpsURLConnection.setDefaultHostnameVerifier(ignoreHostnameVerifier);
HttpsURLConnection.setDefaultSSLSocketFactory(sslcontext.getSocketFactory());
HttpsURLConnectionurlCon=(HttpsURLConnection)url.openConnection();
urlCon.setConnectTimeout(6000);
urlCon.setReadTimeout(6000);
intcode=urlCon.getResponseCode();
if(code!=HttpURLConnection.HTTP_OK){
thrownewException("文件读取失败");
}
//读文件流
InputStreaminputStream=urlCon.getInputStream();
//上传文件(上传文件流的形式)
ossClient.putObject(bucketName,"recording/"+fileName,inputStream);
//关闭OSSClient。
ossClient.shutdown();
returnbucketServer+"recording/"+fileName;
}catch(IOExceptione){
e.printStackTrace();
}catch(Exceptione){
e.printStackTrace();
}
returnnull;
}
}
结论:
两个类搭配着用,完美解决下载https文件上传到阿里oss返回上传之后路径。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。