天天看點

阿裡雲OSS使用詳解(java版本)

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

一、使用之前,我們還是先來搞清楚阿裡雲oss使用的原理吧

阿裡雲OSS使用詳解(java版本)

其實調用方式也就兩種,一種是直接用戶端調用阿裡雲提供的伺服器進行上傳,一種是通過伺服器間接上傳,我們來分析以下優缺點吧:

上傳方式 優點 缺點
直接調用 上傳速度快,能直接快速上傳到阿裡雲伺服器,不需要中轉 可能會不安全,暴露核心配置資訊
間接調用 安全,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));
        }
    }
}           

繼續閱讀