近幾年,雲圖檔伺服器五花八門,越來越多,有騰訊雲,阿裡雲,又拍雲,華為雲等等,但是使用了這麼多年,我還是感覺阿裡雲圖檔伺服器oss比較穩定,通路速度也比較快,是以我在這裡手把手教給你如何使用阿裡雲oss服務;
一、使用之前,我們還是先來搞清楚阿裡雲oss使用的原理吧

其實調用方式也就兩種,一種是直接用戶端調用阿裡雲提供的伺服器進行上傳,一種是通過伺服器間接上傳,我們來分析以下優缺點吧:
上傳方式 | 優點 | 缺點 |
直接調用 | 上傳速度快,能直接快速上傳到阿裡雲伺服器,不需要中轉 | 可能會不安全,暴露核心配置資訊 |
間接調用 | 安全,appkey和secret不用暴露在用戶端 | 相對安全,速度可能會有點慢 |
為了安全起見,我們還是采用服務端間接上傳的方式,這種方式為了規避上傳速度,可以在阿裡雲伺服器端進行區域網路上傳。
二、下面我們就一起進入java版本的OSS上傳實戰中吧
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>2.8.3</version>
</dependency>
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));
}
}
}