近幾年,云圖片服務器五花八門,越來越多,有騰訊云,阿里云,又拍云,華為云等等,但是使用了這么多年,我還是感覺阿里云圖片服務器oss比較穩定,訪問速度也比較快,因此我在這里手把手教給你如何使用阿里云oss服務;
一、使用之前,我們還是先來搞清楚阿里云oss使用的原理吧:
其實調用方式也就兩種,一種是直接客戶端調用阿里云提供的服務器進行上傳,一種是通過服務器間接上傳,我們來分析以下優缺點吧:
上傳方式優點缺點直接調用上傳速度快,能直接快速上傳到阿里云服務器,不需要中轉可能會不安全,暴露核心配置信息間接調用安全,appkey和secret不用暴露在客戶端相對安全,速度可能會有點慢
為了安全起見,我們還是采用服務端間接上傳的方式,這種方式為了規避上傳速度,可以在阿里云服務器端進行局域網上傳。
1.在項目中引用maven依賴,如果不是maven工程的,請自行到阿里云oss上面下載對應的jar;
1
2
3
4
5
|
< dependency > < groupId >com.aliyun.oss</ groupId > < artifactId >aliyun-sdk-oss</ artifactId > < version >2.8.3</ version > </ dependency > |
2.封裝對應的工具類,另外,endPoint 有兩種方式,一種為服務端通過外網上傳,一種為服務端通過局域網進行上傳,使用的過程中可以自行選擇:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
public class OssUtil { //這里的配置可以在properties或者yml中進行配置 @Value ( "${oss.accessKeyId}" ) private String accessKeyId; @Value ( "${oss.accessKeySecret}" ) private String accessKeySecret; @Value ( "${oss.bucketName}" ) private String bucketName; @Value ( "${oss.endPoint}" ) private String endPoint ; //文件直接上傳的方式,filename 為定義的文件名字 public void upload(File obj, String fileName) { OSSClient ossClient = null ; try { ossClient = new OSSClient(endPoint, accessKeyId, accessKeySecret); ossClient.putObject(bucketName, fileName, obj); } catch (Exception e) { e.printStackTrace(); } finally { if (ossClient != null ) ossClient.shutdown(); } } //文件字節方式進行上傳,filename 為定義的文件名字 public void upload( byte [] array, String fileName) { long start = System.currentTimeMillis(); OSSClient ossClient = null ; try { ossClient = new OSSClient(endPoint, accessKeyId, accessKeySecret); ossClient.putObject(bucketName, fileName, new ByteArrayInputStream(array)); } catch (Exception e) { e.printStackTrace(); } finally { if (ossClient != null ) ossClient.shutdown(); log.info( "上傳時間:{}ms" , (System.currentTimeMillis() - start)); } } } |
到此這篇關于阿里云OSS基于java使用詳解 的文章就介紹到這了,更多相關阿里云OSS基于java內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/leipan919134/article/details/101538542