阿里云OSS并測試上傳

來源: CSDN
作者:dalianpai
時(shí)間:2021-01-05
17032
阿里云對象存儲(chǔ)服務(wù)(Object Storage Service,簡稱 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存儲(chǔ)服務(wù)。其數(shù)據(jù)設(shè)計(jì)持久性不低于 99.9999999999%(12 個(gè) 9),服務(wù)設(shè)計(jì)可用性(或業(yè)務(wù)連續(xù)性)不低于 99.995%。

什么是對象存儲(chǔ) OSS

阿里云對象存儲(chǔ)服務(wù)(Object Storage Service,簡稱 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存儲(chǔ)服務(wù)。其數(shù)據(jù)設(shè)計(jì)持久性不低于 99.9999999999%(12 個(gè) 9),服務(wù)設(shè)計(jì)可用性(或業(yè)務(wù)連續(xù)性)不低于 99.995%。

OSS 具有與平臺(tái)無關(guān)的 RESTful API 接口,您可以在任何應(yīng)用、任何時(shí)間、任何地點(diǎn)存儲(chǔ)和訪問任意類型的數(shù)據(jù)。

您可以使用阿里云提供的 API、SDK 接口或者 OSS 遷移工具輕松地將海量數(shù)據(jù)移入或移出阿里云 OSS。數(shù)據(jù)存儲(chǔ)到阿里云 OSS 以后,您可以選擇標(biāo)準(zhǔn)存儲(chǔ)(Standard)作為移動(dòng)應(yīng)用、大型網(wǎng)站、圖片分享或熱點(diǎn)音視頻的主要存儲(chǔ)方式,也可以選擇成本更低、存儲(chǔ)期限更長的低頻訪問存儲(chǔ)(Infrequent Access)和歸檔存儲(chǔ)(Archive)作為不經(jīng)常訪問數(shù)據(jù)的存儲(chǔ)方式。

相關(guān)概念

存儲(chǔ)類型(Storage Class)

OSS 提供標(biāo)準(zhǔn)、低頻訪問、歸檔三種存儲(chǔ)類型,全面覆蓋從熱到冷的各種數(shù)據(jù)存儲(chǔ)場景。其中標(biāo)準(zhǔn)存儲(chǔ)類型提供高可靠、高可用、高性能的對象存儲(chǔ)服務(wù),能夠支持頻繁的數(shù)據(jù)訪問;低頻訪問存儲(chǔ)類型適合長期保存不經(jīng)常訪問的數(shù)據(jù)(平均每月訪問頻率 1 到 2 次),存儲(chǔ)單價(jià)低于標(biāo)準(zhǔn)類型;歸檔存儲(chǔ)類型適合需要長期保存(建議半年以上)的歸檔數(shù)據(jù),在三種存儲(chǔ)類型中單價(jià)最低。詳情請參見存儲(chǔ)類型介紹。

存儲(chǔ)空間(Bucket)

存儲(chǔ)空間是您用于存儲(chǔ)對象(Object)的容器,所有的對象都必須隸屬于某個(gè)存儲(chǔ)空間。存儲(chǔ)空間具有各種配置屬性,包括地域、訪問權(quán)限、存儲(chǔ)類型等。您可以根據(jù)實(shí)際需求,創(chuàng)建不同類型的存儲(chǔ)空間來存儲(chǔ)不同的數(shù)據(jù)。創(chuàng)建存儲(chǔ)空間請參見創(chuàng)建存儲(chǔ)空間。

對象/文件(Object)

對象是 OSS 存儲(chǔ)數(shù)據(jù)的基本單元,也被稱為 OSS 的文件。對象由元信息(Object Meta)、用戶數(shù)據(jù)(Data)和文件名(Key)組成。對象由存儲(chǔ)空間內(nèi)部唯一的 Key 來標(biāo)識(shí)。對象元信息是一組鍵值對,表示了對象的一些屬性,例如最后修改時(shí)間、大小等信息,同時(shí)您也可以在元信息中存儲(chǔ)一些自定義的信息。

地域(Region)

地域表示 OSS 的數(shù)據(jù)中心所在物理位置。您可以根據(jù)費(fèi)用、請求來源等選擇合適的地域創(chuàng)建 Bucket。詳情請參見 OSS 已開通的Region。

訪問域名(Endpoint)

Endpoint 表示 OSS 對外服務(wù)的訪問域名。OSS 以 HTTP RESTful API 的形式對外提供服務(wù),當(dāng)訪問不同地域的時(shí)候,需要不同的域名。通過內(nèi)網(wǎng)和外網(wǎng)訪問同一個(gè)地域所需要的域名也是不同的。具體的內(nèi)容請參見各個(gè) Region 對應(yīng)的 Endpoint。

訪問密鑰(AccessKey)

AccessKey(簡稱 AK)指的是訪問身份驗(yàn)證中用到的 AccessKeyId 和 AccessKeySecret。OSS 通過使用 AccessKeyId 和 AccessKeySecret 對稱加密的方法來驗(yàn)證某個(gè)請求的發(fā)送者身份。AccessKeyId 用于標(biāo)識(shí)用戶;AccessKeySecret 是用戶用于加密簽名字符串和 OSS 用來驗(yàn)證簽名字符串的密鑰,必須保密。獲取 AccessKey 的方法請參見創(chuàng)建 AccessKey。

相關(guān)服務(wù)

您把數(shù)據(jù)存儲(chǔ)到 OSS 以后,就可以使用阿里云提供的其他產(chǎn)品和服務(wù)對其進(jìn)行相關(guān)操作。

以下是您會(huì)經(jīng)常使用到的阿里云產(chǎn)品和服務(wù):

圖片處理(IMG):對存儲(chǔ)在 OSS 上的圖片進(jìn)行格式轉(zhuǎn)換、縮放、裁剪、旋轉(zhuǎn)、添加水印等各種操作。請參見快速使用 OSS 圖片處理服務(wù)。

云服務(wù)器(ECS):提供簡單高效、處理能力可彈性伸縮的云端計(jì)算服務(wù)。請參見 ECS 產(chǎn)品詳情頁面。

內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN):將 OSS 資源緩存到各區(qū)域的邊緣節(jié)點(diǎn),利用邊緣節(jié)點(diǎn)緩存的數(shù)據(jù),提升同一個(gè)文件,被邊緣節(jié)點(diǎn)客戶大量重復(fù)下載的體驗(yàn)。請參見 CDN 產(chǎn)品詳情頁面。

E-MapReduce:構(gòu)建于 ECS 上的大數(shù)據(jù)處理的系統(tǒng)解決方案,基于開源的 Apache Hadoop 和 Apache Spark,方便您分析和處理自己的數(shù)據(jù)。請參見 E-MapReduce 產(chǎn)品詳情頁面。

媒體處理:將存儲(chǔ)于 OSS 的音視頻轉(zhuǎn)碼成適合在 PC、TV 以及移動(dòng)終端上播放的格式。并基于海量數(shù)據(jù)深度學(xué)習(xí),對音視頻的內(nèi)容、文字、語音、場景多模態(tài)分析,實(shí)現(xiàn)智能審核、內(nèi)容理解、智能編輯。請參見媒體處理產(chǎn)品詳情頁面。

管理 OSS

通過 OSS 控制臺(tái)管理 OSS

OSS 提供了 Web 服務(wù)頁面,您可以登錄 OSS 管理控制臺(tái),管理您的 OSS。詳情請參見控制臺(tái)用戶指南。

通過 API 或 SDK 管理 OSS

OSS 提供 RESTful API 和各種語言的 SDK 開發(fā)包,方便您快速進(jìn)行二次開發(fā)。詳情請參見 OSS API 參考和 OSS SDK 參考。

通過工具管理 OSS

OSS 提供各類型的管理工具,您可以通過工具管理您的 OSS。詳情請參見 OSS 常用工具。

 基本概念

存儲(chǔ)空間(Bucket)

存儲(chǔ)空間是用戶用于存儲(chǔ)對象(Object)的容器,所有的對象都必須隸屬于某個(gè)存儲(chǔ)空間。存儲(chǔ)空間具有各種配置屬性,包括地域、訪問權(quán)限、存儲(chǔ)類型等。用戶可以根據(jù)實(shí)際需求,創(chuàng)建不同類型的存儲(chǔ)空間來存儲(chǔ)不同的數(shù)據(jù)。

同一個(gè)存儲(chǔ)空間的內(nèi)部是扁平的,沒有文件系統(tǒng)的目錄等概念,所有的對象都直接隸屬于其對應(yīng)的存儲(chǔ)空間。

每個(gè)用戶可以擁有多個(gè)存儲(chǔ)空間。

存儲(chǔ)空間的名稱在 OSS 范圍內(nèi)必須是全局唯一的,一旦創(chuàng)建之后無法修改名稱。

存儲(chǔ)空間內(nèi)部的對象數(shù)目沒有限制。

存儲(chǔ)空間的命名規(guī)范如下:

只能包括小寫字母、數(shù)字和短橫線(-)。

必須以小寫字母或者數(shù)字開頭和結(jié)尾。

長度必須在 3–63 字節(jié)之間。

對象/文件(Object)

對象是 OSS 存儲(chǔ)數(shù)據(jù)的基本單元,也被稱為 OSS 的文件。對象由元信息(Object Meta),用戶數(shù)據(jù)(Data)和文件名(Key)組成。對象由存儲(chǔ)空間內(nèi)部唯一的 Key 來標(biāo)識(shí)。對象元信息是一組鍵值對,表示了對象的一些屬性,比如最后修改時(shí)間、大小等信息,同時(shí)用戶也可以在元信息中存儲(chǔ)一些自定義的信息。

對象的生命周期是從上傳成功到被刪除為止。在整個(gè)生命周期內(nèi),只有通過追加上傳的 Object 可以繼續(xù)通過追加上傳寫入數(shù)據(jù),其他上傳方式上傳的 Object 內(nèi)容無法編輯,您可以通過重復(fù)上傳同名的對象來覆蓋之前的對象。

對象的命名規(guī)范如下:

使用 UTF-8 編碼。

長度必須在 1–1023 字節(jié)之間。

不能以正斜線(/)或者反斜線(\)開頭。

說明 對象名稱需要區(qū)分大小寫。如無特殊說明,本文檔中的對象、文件稱謂等同于 Object。

Region(地域)

Region 表示 OSS 的數(shù)據(jù)中心所在物理位置。用戶可以根據(jù)費(fèi)用、請求來源等選擇合適的地域創(chuàng)建 Bucket。一般來說,距離用戶更近的 Region 訪問速度更快。詳情請查看 OSS 已經(jīng)開通的 Region。

Region 是在創(chuàng)建 Bucket 的時(shí)候指定的,一旦指定之后就不允許更改。該 Bucket 下所有的 Object 都存儲(chǔ)在對應(yīng)的數(shù)據(jù)中心,目前不支持 Object 級(jí)別的 Region 設(shè)置。

Endpoint(訪問域名)

Endpoint 表示 OSS 對外服務(wù)的訪問域名。OSS 以 HTTP RESTful API 的形式對外提供服務(wù),當(dāng)訪問不同的 Region 的時(shí)候,需要不同的域名。通過內(nèi)網(wǎng)和外網(wǎng)訪問同一個(gè) Region 所需要的 Endpoint 也是不同的。例如杭州 Region 的外網(wǎng) Endpoint 是 oss-cn-hangzhou.aliyuncs.com,內(nèi)網(wǎng) Endpoint 是 oss-cn-hangzhou-internal.aliyuncs.com。具體的內(nèi)容請參見各個(gè) Region 對應(yīng)的 Endpoint。

AccessKey(訪問密鑰)

AccessKey(簡稱 AK)指的是訪問身份驗(yàn)證中用到的 AccessKeyId 和 AccessKeySecret。OSS 通過使用 AccessKeyId 和 AccessKeySecret 對稱加密的方法來驗(yàn)證某個(gè)請求的發(fā)送者身份。AccessKeyId 用于標(biāo)識(shí)用戶;AccessKeySecret 是用戶用于加密簽名字符串和 OSS 用來驗(yàn)證簽名字符串的密鑰,必須保密。對于 OSS 來說,AccessKey 的來源有:

Bucket 的擁有者申請的 AccessKey。

被 Bucket 的擁有者通過 RAM 授權(quán)給第三方請求者的 AccessKey。

被 Bucket 的擁有者通過 STS 授權(quán)給第三方請求者的 AccessKey。

創(chuàng)建OSS

ia_3600000000.png

ia_3600000001.png

ia_3600000002.png

 創(chuàng)建子用戶

ia_3600000003.png

 原生SDK上傳

    @Test

    void upload() {

        // Endpoint以杭州為例,其它Region請按實(shí)際情況填寫。

        String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";

        // 阿里云主賬號(hào)AccessKey擁有所有API的訪問權(quán)限,風(fēng)險(xiǎn)很高。強(qiáng)烈建議您創(chuàng)建并使用RAM賬號(hào)進(jìn)行API訪問或日常運(yùn)維,請登錄 https://ram.console.aliyun.com 創(chuàng)建RAM賬號(hào)。

        String accessKeyId = "LTAI4FzQD4543kCervA5vy";

        String accessKeySecret = "wmCFWidrtvJK08ZvAIukf0OexyGRZ";

        // 創(chuàng)建OSSClient實(shí)例。

        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        // 創(chuàng)建PutObjectRequest對象。

        String content = "C:\\Users\\asus\\Desktop\\node-disk-manager-amd64.tar";

        // <yourObjectName>表示上傳文件到OSS時(shí)需要指定包含文件后綴在內(nèi)的完整路徑,例如abc/efg/123.jpg。

        PutObjectRequest putObjectRequest = new PutObjectRequest("gulimall-dalianpai", "k8s.tar", new ByteArrayInputStream(content.getBytes()));

        // 如果需要上傳時(shí)設(shè)置存儲(chǔ)類型與訪問權(quán)限,請參考以下示例代碼。

        // ObjectMetadata metadata = new ObjectMetadata();

        // metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS, StorageClass.Standard.toString());

        // metadata.setObjectAcl(CannedAccessControlList.Private);

        // putObjectRequest.setMetadata(metadata);

        // 上傳字符串。

        ossClient.putObject(putObjectRequest);

        // 關(guān)閉OSSClient。

        ossClient.shutdown();

    }  

 與SpringCloud整合上傳,注意這個(gè)官網(wǎng)API,我在上傳的時(shí)候,流會(huì)被截?cái)啵蟼鞯牟煌暾?/span>

spring:

  application:

    name: gulimall-product

  cloud:

    nacos:

      discovery:

        server-addr: 192.168.1.118:8848

      config:

        server-addr: 192.168.1.118:8848

        namespace: 1a99a442-e66b-4fa6-8da7-e08cab3727de

        group: dev

        file-extension: yaml

    alicloud:

      access-key: LTAI4Fz32kWpSNkCervA5vy

      secret-key: wmCFWidt8YvJK32vAIukf0OexyGRZ

      oss:

        endpoint: oss-cn-beijing.aliyuncs.com

    @Test

    void upload2() throws FileNotFoundException {

        // 創(chuàng)建PutObjectRequest對象。

        InputStream fileInputStream = new FileInputStream("C:\\Users\\asus\\Desktop\\榮哥v1.docx");

        ossClient.putObject("gulimall-dalianpai-oss", "榮哥v1.docx",fileInputStream);

        ossClient.shutdown();

        System.out.println("上傳成功");

    }

ia_3600000004.png

版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接和本聲明。

本文鏈接:https://blog.csdn.net/qq_29860591/article/details/106417565

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于CSDN,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對觀點(diǎn)贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
阿里云助力《誅仙世界》端游正式開服!
阿里云助力《誅仙世界》端游正式開服!
近?,完美世界游戲歷時(shí)多年打造的新國?仙俠MMORPG端游《誅仙世界》在阿?云上正式開服。
阿里云
云服務(wù)
2024-12-292024-12-29
一文詳解阿里云AI大基建
一文詳解阿里云AI大基建
面向AI時(shí)代,阿里云基礎(chǔ)設(shè)施是如何創(chuàng)新與發(fā)展的?計(jì)算、網(wǎng)絡(luò)、存儲(chǔ)、服務(wù)器、集群、可觀測等,阿里云全新升級(jí)的AI Infra到底有哪些重磅更新?
阿里云
云服務(wù)
2024-11-022024-11-02
AI時(shí)代云安全新范式,阿里云安全能力全線升級(jí)!
AI時(shí)代云安全新范式,阿里云安全能力全線升級(jí)!
AI時(shí)代,云安全面臨著新的挑戰(zhàn),不僅要持續(xù)面對以往的傳統(tǒng)問題,更需要全新理念落地于產(chǎn)品設(shè)計(jì)、技術(shù)演進(jìn)、架構(gòu)設(shè)計(jì),才能實(shí)現(xiàn)效果、性能、和成本的最優(yōu)解。
AI
阿里云
云服務(wù)
2024-09-272024-09-27
連續(xù)四年!阿里云領(lǐng)跑中國公有云大數(shù)據(jù)平臺(tái)
連續(xù)四年!阿里云領(lǐng)跑中國公有云大數(shù)據(jù)平臺(tái)
近日,國際數(shù)據(jù)公司(IDC)發(fā)布《中國大數(shù)據(jù)平臺(tái)市場份額,2023:數(shù)智融合時(shí)代的真正到來》報(bào)告——2023年中國大數(shù)據(jù)平臺(tái)公有云服務(wù)市場規(guī)模達(dá)72.2億元人民幣,其中阿里巴巴市場份額保持領(lǐng)先,占比達(dá)40.2%,連續(xù)四年排名第一。
阿里云
云服務(wù)
2024-09-182024-09-18
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號(hào)登錄/注冊
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家