OSS 物件儲存介紹

2022-07-01 04:45:12 字數 3380 閱讀 6687

目錄oss與普通圖床有什麼區別?

儲存空間是您用於儲存物件(object)的容器,所有的物件都必須隸屬於某個儲存空間。您可以設定和修改儲存空間屬性用來控制地域、訪問許可權、生命週期等,這些屬性設定直接作用於該儲存空間內所有物件,因此您可以通過靈活建立不同的儲存空間來完成不同的管理功能。

儲存空間的命名規範如下:

物件是 oss 儲存資料的基本單元,也被稱為 oss 的檔案。物件由元資訊(object meta),使用者資料(data)和檔名(key)組成。物件由儲存空間內部唯一的 key 來標識。物件元資訊是乙個鍵值對,表示了物件的一些屬性,比如最後修改時間、大小等資訊,同時使用者也可以在元資訊中儲存一些自定義的資訊。

根據不同的上傳方式,物件的大小限制是不一樣的。分片上傳 最大支援 48.8tb 的物件大小,其他的上傳方式最大支援 5gb。

物件的生命週期是從上傳成功到被刪除為止。在整個生命週期內,物件資訊不可變更。重複上傳同名的物件會覆蓋之前的物件,因此,oss 不支援修改檔案的部分內容等操作。

oss 提供了 追加上傳 功能,使用者可以使用該功能不斷地在object尾部追加寫入資料。

物件的命名規範如下:

region 表示 oss 的資料中心所在的區域,物理位置。使用者可以根據費用、請求**等綜合選擇資料儲存的 region。一般來說,距離使用者更近的 region 訪問速度更快。詳細請檢視 oss 已經開通的 region。

region是在建立 bucket 的時候指定的,一旦指定之後就不允許更改,該 bucket 下所有的 object 都儲存在對應的資料中心,目前不支援 object 級別的 region 設定。

endpoint 表示 oss 對外服務的訪問網域名稱。oss 以 http restful api 的形式對外提供服務,當訪問不同的 region 的時候,需要不同的網域名稱。通過內網和外網訪問同乙個 region 所需要的 endpoint 也是不同的。例如杭州 region 的外網 endpoint 是 oss-cn-hangzhou.aliyuncs.com,內網 endpoint 是 oss-cn-hangzhou-internal.aliyuncs.com。具體的內容請參見 各個 region 對應的 endpoint。

accesskey,簡稱 ak,指的是訪問身份驗證中用到的 accesskeyid 和accesskeysecret。oss 通過使用 accesskeyid 和 accesskeysecret 對稱加密的方法來驗證某個請求的傳送者身份。accesskeyid 用於標識使用者,accesskeysecret 是使用者用於加密簽名字串和 oss 用來驗證簽名字串的金鑰,其中 accesskeysecret 必須保密。對於 oss 來說,accesskey 的**有:

更多 accesskey 介紹請參見 訪問控制。

object 操作在 oss 上具有原子性,操作要麼成功要麼失敗,不會存在有中間狀態的object。oss 保證使用者一旦上傳完成之後讀到的 object 是完整的,oss 不會返回給使用者乙個部分上傳成功的 object。

強一致性方便了使用者架構設計,可以使用跟傳統儲存裝置同樣的邏輯來使用oss,修改立即可見,無需考慮最終一致性帶來的各種問題。

oss 是乙個分布式的物件儲存服務,提供的是乙個 key-value 對形式的物件儲存服務。使用者可以根據 object 的名稱(key)唯一的獲取該object的內容。雖然使用者可以使用類似 test1/test.jpg 的名字,但是這並不表示使用者的 object 是儲存在test1 目錄下面的。對於 oss 來說,test1/test.jpg 僅僅只是乙個字串,和a.jpg 這種並沒有本質的區別。因此不同名稱的 object 之間的訪問消耗的資源是類似的。

檔案系統是一種典型的樹狀索引結構,乙個名為 test1/test.jpg 的檔案,訪問過程需要先訪問到 test1 這個目錄,然後再在該目錄下查詢名為 test.jpg 的檔案。因此檔案系統可以很輕易的支援資料夾的操作,比如重新命名目錄、刪除目錄、移動目錄等,因為這些操作僅僅只是針對目錄節點的操作。這種組織結構也決定了檔案系統訪問越深的目錄消耗的資源也越大,操作擁有很多檔案的目錄也會非常慢。

對於 oss 來說,可以通過一些操作來模擬類似的功能,但是代價非常昂貴。比如重新命名目錄,希望將 test1 目錄重新命名成 test2,那麼 oss 的實際操作是將所有以 test1/ 開頭的 object 都重新複製成以 test2/ 開頭的 object,這是乙個非常消耗資源的操作。因此在使用 oss 的時候要盡量避免類似的操作。

oss 儲存的 object 不支援修改(追加寫 object 需要呼叫特定的介面,生成的 object 也和正常上傳的 object 型別上有差別)。使用者哪怕是僅僅需要修改乙個位元組也需要重新上傳整個 object。而檔案系統的檔案支援修改,比如修改指定偏移位置的內容、截斷檔案尾部等,這些特點也使得檔案系統擁有廣泛的適用性。但另外一方面,oss 能支援海量的使用者併發訪問,而檔案系統會受限於單個裝置的效能。

英文中文

bucket

儲存空間

object

物件或者檔案

endpoint

oss 訪問網域名稱

region

區域或者資料中心

accesskey

accesskeyid 和 accesskeysecret 的統稱,訪問金鑰

put object

簡單上傳

post object

表單上傳

multipart upload

分片上傳

追加上傳

get object

callback

**object meta

檔案元資訊。用來描述檔案資訊,例如長度,型別等

data

檔案資料

key檔名

acl (access control list)

儲存空間或者檔案的許可權

首先oss是object storage service 的簡寫,解決了伺服器儲存blob(binary large object)的需求。

linuxext3檔案系統,預設乙個資料夾內最多只能當32000個檔案

檔案直接儲存在伺服器上還有安全性問題,如果黑客上傳了二進位制可執行檔案並且通過漏洞執行了該檔案,會導致無法預計的後果。

大型web服務傾向於把業務邏輯,資料庫,其他使用者資料分開,而不是擠在同乙個伺服器裡,好處很多,比如業務程式,資料庫程式都有獨立的cpu,穩定性更好,安全性高等。

檔案分發又是乙個問題,你可測試過跨與不誇運營商網路或地區的情況下,檔案傳輸速度和延遲的差距?

其實oss沒有目錄的概念,我記得檔案的key(可以理解為檔名),是可以帶有斜槓的,你自己按照目錄的方式儲存就行了,其實它只是乙個key value pair而已

oss並不是圖床,而是可以儲存任何檔案的,並提供多節點資料分發的服務

物件儲存oss初探

什麼是物件儲存技術?物件儲存 object storage 物件 其實是乙個資料儲存單位,就像是磁碟中的塊般 乙個儲存的物件,不僅僅包含了其要儲存的資料本身,也包含了描述資料的資訊 即元資訊 以及由儲存資料和元資訊生成的唯一標識id 說白了,從小的物件 人類可以讀取的檔案 到 或者其他行業固定格式 ...

阿里雲OSS物件儲存

1 如果您通過composer管理您的專案依賴,可以在你的專案根目錄執行 composer require aliyuncs oss sdk php 或者在你的composer.json 中宣告對 aliyun oss sdk for php 的依賴 require 然後通過composer ins...

阿里雲物件儲存OSS入門

基於阿里雲提供的的檔案傳輸服務,可以對檔案實施 oss 有一些注意事項 下面是從阿里雲官網 oss基本概念摘抄的幾個重要的基本概念。物件 object 物件是 oss 儲存資料的基本單元,也被稱為 oss 的檔案。和傳統的檔案系統不同,物件沒有檔案目錄層級結構的關係。物件由元資訊 object me...