全部產品
Search
文件中心

Drive and Photo Service:檔案歷史版本

更新時間:Jun 10, 2025

本文檔描述網盤與相簿服務(開發人員版)的檔案歷史版本功能,您可以通過PDS提供的預設用戶端使用歷史版本功能,也可以參考該文檔調用API實現檔案歷史版本的管理。

基本概念

個人空間或團隊雲端硬碟中,檔案和檔案夾是樹形結構:

多版本圖片

  • 檔案夾沒有版本,檔案有n個版本(n>=1)。

  • 建立檔案或編輯已有檔案,會產生檔案版本。

  • 建立檔案時,檔案只有一個版本。

  • 編輯或覆蓋一個已有檔案,會產生新版本。

  • 如果未開啟多版本,檔案只保留最新版本。

  • 如果開啟了多版本,產生新版本時,會將目前的版本保留為歷史版本,並根據配置的規則控制歷史版本的數量。

  • 檔案的歷史版本,會佔用雲端硬碟空間容量。

功能介紹

  • 該功能開啟後,支援檔案多版本備份,可以安全地儲存檔案及其歷史版本,即使檔案被覆蓋或者錯誤修改,也可以輕鬆恢複檔案的歷史版本。

  • 編輯或覆蓋檔案會產生歷史版本,支援列舉、查看、恢複、刪除歷史版本,支援為歷史版本設定標記資訊。

  • 支援配置版本儲存期限(1-999天),或者設定不超期,支援進行周期內版本自動合并以避免產生過多歷史版本。

  • 支援配置版本儲存個數(1-999個),並支援將最多50個版本設定為持續保留,持續保留的版本不會因超期或超過數量限制而被刪除。

前提條件

開啟歷史版本

  1. 登入BasicUI,進入管理主控台

  2. 在左側導覽列選擇企業設定 > 檔案設定

  3. 開啟歷史版本開關。

    image

歷史版本配置

在歷史版本右側單擊編輯可對歷史版本配置進行修改。

功能

說明

合并檔案歷史版本

預設開啟。檔案在10分鐘內的多次儲存結果(如線上編輯儲存、同步盤上傳)將合并產生一個歷史版本。取消勾選後,每次儲存結果均產生一個歷史版本(包含自動儲存和手動儲存)。

版本數量上限設定

  • 自訂1-999之間的整數值作為歷史版本數量上限。

  • 除永久儲存版本外,超過數量上限的歷史版本將被自動清除。

  • 過多的歷史版本會導致您的版本管理混亂,也會佔用過多的儲存空間,建議進行版本數量限制。

版本存放期限設定

  • 自訂1-999之間的整數值作為歷史版本數量上限。

  • 除永久儲存版本外,超過存放期限的歷史版本將被自動清除。

  • 長時間的歷史版本會導致您的版本管理混亂,也會佔用過多的儲存空間,建議進行存放期限設定。

API 呼叫流程及樣本

產生新版本

上傳檔案後,檔案只有一個版本。覆蓋上傳檔案後,檔案會產生新版本。

覆蓋上傳的邏輯,可參考檔案上傳最佳實務中的相關描述。覆蓋檔案的基本邏輯是:在CreateFile - 建立檔案或檔案夾介面中,設定 file_id 為要覆蓋的檔案ID,其它流程和普通上傳一致。

列舉歷史版本

調用ListRevision - 列舉版本介面,擷取單個檔案的版本列表,支援分頁。返回的版本列表,以產生的時間倒序排序,越近產生的版本,排序越靠前。

請求樣本:

{
	"drive_id":"testDriveId",
	"file_id": "testFileId"
}

響應樣本:

{
	"items": [{
		"domain_id": "testDomainId",
		"drive_id": "testDriveId",
		"file_id": "testFileId",
		"revision_id": "testRevisionId",
		"revision_name": "history_version.xlsx",
		"file_extension": "xlsx",
		"size": 8493,
		"revision_version": 2,
		"keep_forever": false,
		"revision_description": "",
		"revision_create_reason": "overwrite",
		"content_hash_name": "sha1",
		"content_hash": "xxxxxx",
		"crc64_hash": "xxxxxx",
		"created_at": "2022-09-05T04:00:09.017Z",
		"updated_at": "2022-09-05T04:00:09.017Z",
		"creator_type": "User",
		"creator_id": "testCreatorId",
		"is_latest_version": true
	}],
	"next_marker": ""
}

名詞解釋:

  • 請求參數drive_id,是個人空間或團隊空間的ID。

  • 請求參數file_id,是檔案ID,不能是檔案夾ID。

  • 分頁擷取時,請求響應中的參數next_marker是下一頁起始資源標識符,可設定為下一次請求的marker參數。當一次請求的響應參數next_marker為空白時,表示已經擷取到最後一頁。

  • 響應參數revision_version,表示版本編號,編號越小,產生的時間越早。

  • 響應參數revision_create_reason,表示版本產生的方式,有效值包括:

    • "":建立

    • "overwrite":覆蓋更新

    • "restore_rev":歷史版本還原

  • 響應參數is_latest_version,標識檔案是否為最新版本。

  • 響應參數revision_name,最新版本的名字,和檔案保持一致;歷史版本的名字,在歷史版本產生時固定。

擷取版本資訊

調用GetRevision - 擷取版本資訊資訊介面,可以擷取單個版本的詳情。與列舉歷史版本介面相比,擷取版本資訊介面的響應資訊增加了下載地址。

請求樣本:

{
	"drive_id":"testDriveId",
	"file_id": "testFileId",
	"revision_id": "testRevisionId"
}

返回樣本:

{
	"domain_id": "testDomainId",
	"drive_id": "testDriveId",
	"file_id": "testFileId",
	"revision_id": "testRevisionId",
	"revision_name": "history_version.xlsx",
	"file_extension": "xlsx",
	"size": 8493,
	"revision_version": 2,
	"keep_forever": false,
	"revision_description": "",
	"revision_create_reason": "overwrite",
	"content_hash_name": "sha1",
	"content_hash": "xxxxxx",
	"crc64_hash": "xxxxxx",
	"created_at": "2022-09-05T04:00:09.017Z",
	"updated_at": "2022-09-05T04:00:09.017Z",
	"creator_type": "User",
	"creator_id": "testCreatorId",
	"is_latest_version": true,
	"download_url": "testDownloadUrl"
}

更新版本資訊

調用UpdateRevision - 更新版本資訊介面,可以設定版本的屬性。

設定持續保留某個版本

重要
  • 支援將最多50個版本設定為持續保留,持續保留的版本不會因超期或超過數量限制而被刪除。

  • 持續保留的版本,可以通過刪除歷史版本刪除。

  • 持續保留的版本,在徹底刪除檔案時會被刪除。

請求樣本:

{
	"drive_id": "testDriveId",
	"file_id": "testFileId",
	"revision_id": "testRevisionId",
	"keep_forever": true
}

取消持續保留某個版本

請求樣本:

{
	"drive_id": "testDriveId",
	"file_id": "testFileId",
	"revision_id": "testRevisionId",
	"keep_forever": false
}

設定版本的描述資訊

請求樣本:

{
	"drive_id": "testDriveId",
	"file_id": "testFileId",
	"revision_id": "testRevisionId",
	"revision_description": "this is a revision"
}

還原歷史版本

重要
  • 該介面不支援還原檔案的最新版本。

  • 還原版本時,以一個歷史版本來產生一個新版本,歷史版本狀態不變,新版本的建立者為還原歷史版本的操作者。如果需要清理歷史版本以釋放其佔用的空間,需要主動調用DeleteRevision - 刪除歷史版本介面。

調用RestoreRevision - 還原歷史版本介面,可以將一個歷史版本還原為檔案的最新版本。

請求樣本:

{
	"drive_id": "testDriveId",
	"file_id": "testFileId",
	"revision_id": "testRevisionId"
}

刪除歷史版本

重要

該介面不支援刪除檔案的最新版本。

調用DeleteRevision - 刪除歷史版本介面,可以刪除一個歷史版本,釋放其佔用的空間。

請求樣本:

{
	"drive_id": "testDriveId",
	"file_id": "testFileId",
	"revision_id": "testRevisionId"
}

常見問題

合并檔案歷史版本的作用

  • 開啟時,對檔案在10分鐘周期內的多次儲存結果(如線上編輯儲存、同步盤上傳)將合并保留最後一個歷史版本,以避免頻繁儲存造成版本過多。10分鐘的合并周期,是指10:00-10:1010:10-10:20這樣的時間段。

  • 關閉時,每次儲存結果均產生一個歷史版本(包含自動儲存和手動儲存)。

檔案第一個版本是否會一直保留

  • 檔案第一個版本,是在建立檔案時產生的,會受版本儲存期限、儲存個數的限制。

  • 如果檔案第一個版本是歷史版本,超過了設定的儲存期限,會被清理。

  • 如果檔案的總版本數超過設定的儲存個數,會從最早的版本開始清理,也可能刪除第一個版本。如果要保留,請將特定版本通過介面或UpdateRevision - 更新版本資訊設定為持續保留。

  • 檔案的最新版本,不會被版本清理機制刪除。

如何關閉歷史版本

歷史版本功能一經開啟後無法關閉。如果需要停用該功能,可以將歷史版本數量上限設定為1,即可實現與未開啟時相同的效果。