欢迎光临
我们一直在努力

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

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

一共两个类:

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

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返回上传之后路径。

  • 海报
海报图正在生成中...
赞(0) 打赏
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《Java下载https文件上传到阿里云oss服务器》
文章链接:https://www.456zj.com/3900.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址