云平臺對象存儲OSS

文件存儲是我們項目中經(jīng)常要用到的能力,一般處理方法有如下幾種:

  1. 以文件的方式存儲到服務器上刻诊,這種情況適合小規(guī)模存儲需求玫镐,是服務和存儲一體化的解決方案告组,存在的弊病就是耦合性過大,不容易擴展拉庶。
  2. 借助一些第三方存儲系統(tǒng)存儲嗜憔,例如數(shù)據(jù)庫、分布式文件系統(tǒng)等氏仗,這樣的方案系統(tǒng)耦合性低吉捶、擴展性強,也是目前系統(tǒng)架構中常用的方式皆尔,但是對第三方系統(tǒng)的運維有較高要求呐舔。
  3. 利用成熟的云平臺存儲服務。目前市場上知名的云服務平臺都有此服務慷蠕,這樣的解決方案除了具備分布式存儲的諸多優(yōu)點外珊拼,最重要的是免維護,開發(fā)流炕、調(diào)試澎现、運營、運維成本都很低每辟,而且服務穩(wěn)定可靠剑辫。今天就以阿里云的OSS服務作以簡要介紹。

服務開通

首先要開通阿里云賬號渠欺,然后開通OSS服務妹蔽。


OSS控制臺

查閱相關開發(fā)者指南

阿里云提供了詳細的開發(fā)者文檔,通過這些文檔就可以完全掌握如何使用OSS功能挠将。

引入OSS java依賴包

        <!-- 阿里云OSS依賴包 -->
        <dependency>
            <groupId>com.aliyun.oss</groupId>
            <artifactId>aliyun-sdk-oss</artifactId>
            <version>3.5.0</version>
        </dependency>

配置相關參數(shù)

本示例遵循consul微服務的基本架構胳岂,配置參數(shù)全部以Key/Value的方式存儲到consul配置中心。


OSS接入?yún)?shù)

對應的java配置屬性bean為:

package com.crazyice.lee.accumulation.file.conf;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

@Data
@ConfigurationProperties(prefix = "oss")
public class OssConf {
    private String endpoint;
    private String accessKeyId;
    private String accessKeySecret;
    private String bucketName;
}

接口調(diào)用測試

阿里云OSS除了提供bucket創(chuàng)建舔稀、各種對象上傳/下載旦万、資源列表、刪除等基本功能外镶蹋,還包括了圖像處理、ACL、自定義域名贺归、數(shù)據(jù)備份遷移淆两、資源管理工具等輔助能力。這里通過JUnitTest演示幾個典型功能來簡要說明一下OSS API的使用方式拂酣。

  1. 創(chuàng)建bucket
    bucket是一個根存儲節(jié)點秋冰,你的對象資源都存儲在你定義的bucket下,通過控制臺創(chuàng)建該bucket婶熬。


    創(chuàng)建bucket

1.1 首先把配置bean注入到測試類中剑勾。

    @Autowired
    private OssConf ossConf;

1.2 測試創(chuàng)建bucket

    @Test
    public void testOssCreateBucket(){
        // 創(chuàng)建OSSClient實例。
        OSS ossClient = new OSSClientBuilder().build(ossConf.getEndpoint(), ossConf.getAccessKeyId(), ossConf.getAccessKeySecret());

        // 創(chuàng)建存儲空間赵颅。
        ossClient.createBucket(ossConf.getBucketName());

        // 關閉OSSClient虽另。
        ossClient.shutdown();
    }
  1. 上傳文件
    OSS服務提供了多種上傳文件的方式,有流方式饺谬、有文件方式捂刺,這里演示一下本地文件方式。
    @Test
    public void testOssUploadFile(){
        // 創(chuàng)建OSSClient實例募寨。
        OSS ossClient = new OSSClientBuilder().build(ossConf.getEndpoint(), ossConf.getAccessKeyId(), ossConf.getAccessKeySecret());

        // 上傳本地文件
        ossClient.putObject(ossConf.getBucketName(),"test1",new File("/Users/crazyicelee/wordcount.txt"));
        
        // 關閉OSSClient族展。
        ossClient.shutdown();
    }
  1. 查看已經(jīng)存儲的資源列表
    @Test
    public void testOssList(){
        // 創(chuàng)建OSSClient實例。
        OSS ossClient = new OSSClientBuilder().build(ossConf.getEndpoint(), ossConf.getAccessKeyId(), ossConf.getAccessKeySecret());

        // 獲取資源列表
        ObjectListing objectListing=ossClient.listObjects(ossConf.getBucketName());
        for(OSSObjectSummary ossObjectSummary:objectListing.getObjectSummaries()){
            log.info("云存儲對象:{}-{}",ossObjectSummary.getKey(),ossObjectSummary.getSize());
        }
        
        // 關閉OSSClient拔鹰。
        ossClient.shutdown();
    }

控制臺管理OSS

阿里云既提供了API方式使用這些功能仪缸,也提供了控制臺方式管理你的云端資源,功能全面列肢,操作簡單恰画,本文就不贅述,大家感興趣可以自行了解例书。
從以上代碼示例大家可以看出锣尉,使用阿里云的OSS非常簡潔,如果你的項目對云存儲沒有特殊的要求可以考慮使用公有云平臺的OSS服務决采,這樣可以大大節(jié)約項目的實施成本自沧、提高實施效率。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末树瞭,一起剝皮案震驚了整個濱河市拇厢,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌晒喷,老刑警劉巖孝偎,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異凉敲,居然都是意外死亡衣盾,警方通過查閱死者的電腦和手機寺旺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來势决,“玉大人阻塑,你說我怎么就攤上這事」矗” “怎么了陈莽?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長虽抄。 經(jīng)常有香客問我走搁,道長,這世上最難降的妖魔是什么迈窟? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任私植,我火速辦了婚禮,結(jié)果婚禮上菠隆,老公的妹妹穿的比我還像新娘兵琳。我一直安慰自己,他們只是感情好骇径,可當我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布躯肌。 她就那樣靜靜地躺著,像睡著了一般破衔。 火紅的嫁衣襯著肌膚如雪清女。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天晰筛,我揣著相機與錄音嫡丙,去河邊找鬼。 笑死读第,一個胖子當著我的面吹牛曙博,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播怜瞒,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼父泳,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了吴汪?” 一聲冷哼從身側(cè)響起惠窄,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎漾橙,沒想到半個月后杆融,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡霜运,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年脾歇,在試婚紗的時候發(fā)現(xiàn)自己被綠了蒋腮。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡介劫,死狀恐怖徽惋,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情座韵,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布踢京,位于F島的核電站誉碴,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏瓣距。R本人自食惡果不足惜黔帕,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蹈丸。 院中可真熱鬧成黄,春花似錦、人聲如沸逻杖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽荸百。三九已至闻伶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間够话,已是汗流浹背蓝翰。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留女嘲,地道東北人畜份。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像欣尼,于是被迫代替她去往敵國和親爆雹。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,047評論 2 355