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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。