全部產品
Search
文件中心

Object Storage Service:對象/檔案(Object)

更新時間:Mar 19, 2025

在Object Storage Service中,對象(Object)就像檔案一樣,是儲存資料的基本單位。您上傳的每個檔案(如文檔、圖片、視頻等)都會作為Object儲存在儲存空間(Bucket)中,方便後續管理。

Object組成

  • Key:是Object的名稱,類似於檔案路徑,用於查詢Object,具有唯一性。合理的Object名稱有助於管理,詳細命名規則請參見對象命名

  • Data:是Object的實際資料,由任意長度的位元組組成,類似於檔案的內容。

  • Object Meta:Object中繼資料,是一組索引值對,類似於檔案屬性,如最後修改時間、大小等,也可以儲存自訂資訊。

  • Version ID:若要儲存一個檔案的多個版本,需啟用版本控制功能。每次上傳同名Object時,OSS會為新版本分配一個唯一的Version ID,您可以通過該Version ID來訪問和管理特定版本的檔案。

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類型。

  • 在版本控制未開啟或暫停時,若有多個使用者上傳同名Object,後上傳完成的Object會覆蓋前一個,並只保留最後上傳完成的Object。例如,使用者A在使用者B之後完成上傳,最終將保留使用者A上傳的Object。

  • 版本控制開啟時,每次上傳同名Object都會建立新版本,並用版本ID(Version ID)標識。OSS根據上傳的開始時間確定最新版本。例如,使用者B在使用者A之後開始上傳,則使用者B上傳的Object將被標記為最新版本。

Multipart

通過分區上傳產生的Object類型。

  • 在版本控制未開啟或暫停時,分區上傳完成後會合并為一個完整Object,且新的完整的Object會覆蓋同名的舊Object,保留最後完成合併的Object。

  • 版本控制開啟時,每次分區上傳完成併合並後的同名Object都會建立新版本,用Version ID標識,最後完成合併的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後面直接追加內容。

RTMP推流上傳

OSS支援使用RTMP協議推送H264編碼的視頻流和AAC編碼的音頻流到OSS。推送到OSS的音視頻資料可以點播播放;在對延遲不敏感的應用情境,也可以做直播用途。

下載檔案

操作

說明

簡單下載

簡單下載指的是使用OSS API的GetObject介面,下載已上傳的Object,適用於一次HTTP請求互動即可完成下載的情境。

斷點續傳下載

OSS提供了從Object指定的位置開始下載的功能,在下載大的Object的時候,可以分多次下載。如果下載中斷,重啟時也可以從上次完成的位置開始繼續下載。

授權給第三方下載

您可以在不提供資源擁有者所屬帳號的存取金鑰(AccessKey)的情況下,通過臨時訪問憑證以及簽名URL的方式授權第三方下載檔案Object。

使用簽名URL下載檔案

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

通過Cloud Storage Gateway掛載OSS,您可以將OSS映射為一個共用的檔案儲存體系統,實現多個使用者在不同地點和裝置上共用訪問OSS資料。掛載完成後,您可以像使用本地檔案夾和磁碟一樣操作OSS資源。

常見問題