在Object Storage Service中,對象(Object)就像檔案一樣,是儲存資料的基本單位。您上傳的每個檔案(如文檔、圖片、視頻等)都會作為Object儲存在儲存空間(Bucket)中,方便後續管理。
Object組成
Key的別名
您可能會在各語言的SDK文檔中看到不同的術語描述,例如ObjectKey、ObjectName或對象名稱,這些術語實際上都等同於Key,表示操作Object時需填寫的完整Key(含路徑),即下圖所示“exampledir/example.jpg”。請注意,“檔案名稱”是為了便於理解而引用的概念,所以它僅指Key中路徑的最後一部分,即“example.jpg”。
OSS目錄呈現
在Object Storage Service中,其實並不具備傳統檔案系統中的檔案和檔案夾概念,但為了符合使用者的使用習慣,OSS通過在Key中添加“/”來類比檔案夾,例如“exampledir/example.jpg”。此時,“exampledir”就被類比成了一個檔案夾,“example.jpg”則類比成“exampledir”檔案夾下的檔案名稱。在OSS控制台和ossbrowser等圖形化工具中可以看到這種檔案夾結構。但實際上,Object的Key仍然是“exampledir/example.jpg”。詳情請參見管理目錄。
Object類型
Object包含以下四種類型。
不支援在不同類型的檔案(Object)之間相互轉換。例如,Normal類型的檔案無法轉換為Multipart或者Appendable類型。
類型 | 定義 | 說明 |
Normal | 通過簡單上傳產生的Object類型。 |
|
Multipart | 通過分區上傳產生的Object類型。 |
|
Appendable | 通過追加上傳產生的Object類型。 | 無論版本控制的狀態如何,Appendable類型的Object在追加資料時,不會因為追加操作而產生新的版本,所有追加的資料都只會附加到原始檔案之後。 |
Symlink | 通過PutSymlink產生的軟連結。 | 設定軟連結以便快速存取常用Object。 |
Delete Marker(刪除標記)
除上述四種Object類型外,OSS還存在一種特殊的對象標識——Delete Marker(刪除標記)。它並不是傳統的Object類型,而是在版本控制已開啟或暫停Bucket中執行DeleteObject(刪除)操作時產生的標記。如果在刪除Object時未指定版本ID(Version ID),OSS會建立一個“刪除標記”作為最新版本。Object看似已被刪除,實際上資料仍然保留,後續仍可恢複。若刪除Object時指定了版本ID,則會刪除指定版本的Object,而不產生刪除標記。
功能指引
上傳檔案
操作 | 說明 |
簡單上傳指的是使用OSS API中的PutObject介面上傳小於5 GB的單個檔案(Object),適用於一次HTTP請求互動即可完成上傳的情境。 | |
分區上傳是指將待上傳的檔案分成多個片段(Part)分別上傳,上傳完成之後再調用CompleteMultipartUpload介面將這些Part組合成一個Object。 | |
通過斷點續傳上傳的方式將檔案上傳到OSS前,您可以通過Checkpoint檔案指定斷點記錄點。上傳過程中,如果出現網路異常或程式崩潰導致檔案上傳失敗時,將從斷點記錄處繼續上傳未上傳完成的部分。 | |
OSS在完成檔案(Object)上傳時可以提供回調(Callback)給應用伺服器。您只需要在發送給OSS的請求中攜帶相應的Callback參數,即可實現回調。 | |
用戶端直傳是指用戶端直接上傳檔案到Object Storage Service。相對於服務端代理上傳,用戶端直傳避免了商務服務器中轉檔案,提高了上傳速度,節省了伺服器資源。 | |
表單上傳是指使用OSS API中的PostObject請求來完成Object的上傳,上傳的Object不能超過5 GB。 | |
追加上傳指的是在已上傳的Appendable類型Object後面直接追加內容。 | |
OSS支援使用RTMP協議推送H264編碼的視頻流和AAC編碼的音頻流到OSS。推送到OSS的音視頻資料可以點播播放;在對延遲不敏感的應用情境,也可以做直播用途。 |
下載檔案
操作 | 說明 |
簡單下載指的是使用OSS API的GetObject介面,下載已上傳的Object,適用於一次HTTP請求互動即可完成下載的情境。 | |
OSS提供了從Object指定的位置開始下載的功能,在下載大的Object的時候,可以分多次下載。如果下載中斷,重啟時也可以從上次完成的位置開始繼續下載。 | |
您可以在不提供資源擁有者所屬帳號的存取金鑰(AccessKey)的情況下,通過臨時訪問憑證以及簽名URL的方式授權第三方下載檔案Object。 | |
Object上傳至Bucket後,您可以通過檔案URL將檔案分享給第三方預覽或下載。 | |
通過檢測最後修改時間或ETag條件,只有在檔案內容發生變化時才會觸發下載,避免重複下載。 |
管理檔案
操作 | 說明 |
Bucket內的Object預設按照字母序排列。您可以結合實際情境列舉當前Bucket的所有Object、指定首碼的Object、指定個數的Object等。 | |
拷貝檔案是指在不改變檔案內容的情況下,將同一地區下的源Bucket內的檔案複製到目標Bucket。 | |
在同一個Bucket內重新命名某個Object。 | |
當您向Bucket上傳了大量的Object時,OSS支援通過指定檔案名稱首碼快速搜尋並定位目標檔案。 | |
冷Archive Storage或者深度冷Archive Storage類型的Object需要解凍(Restore)之後才能讀取。 | |
您可以通過多種方式刪除Bucket中不再需要保留的Object。 | |
OSS支援使用標籤對Bucket中的Object進行分類,您可以針對同標籤的Object設定生命週期規則、存取權限等。 | |
軟連結功能用於快速存取Bucket內的常用Object。設定軟連結後,您可以使用類似於Windows的捷徑,通過軟連結檔案快速開啟Object。 | |
檔案元資訊是對檔案的屬性描述,包括HTTP標準屬性(HTTP Header)和使用者自訂中繼資料(User Meta)兩種。您可以通過設定檔案HTTP頭來自訂HTTP請求的策略,例如檔案快取策略、強制下載策略等。您還可以通過設定使用者自訂中繼資料來標識Object的用途或屬性等。 | |
用戶端訪問OSS內的Object時會佔用較大頻寬,在某些不容易控制流程控的用戶端上可能會對其他應用造成影響。為避免此類問題,您可以通過OSS提供的單連結限速功能在上傳、下載檔案等操作中進行流量控制,以保證其他應用的網路頻寬。 | |
您可以使用SelectObject對目標檔案執行SQL語句,返回執行結果。 | |
在分區上傳過程中,如果某些Part不再需要,您可以調用AbortMultipartUpload介面刪除這些未完成的Part。 | |
通過Cloud Storage Gateway掛載OSS,您可以將OSS映射為一個共用的檔案儲存體系統,實現多個使用者在不同地點和裝置上共用訪問OSS資料。掛載完成後,您可以像使用本地檔案夾和磁碟一樣操作OSS資源。 |