本文檔描述網盤與相簿服務(開發人員版)的檔案歷史版本功能,您可以通過PDS提供的預設用戶端使用歷史版本功能,也可以參考該文檔調用API實現檔案歷史版本的管理。
基本概念
功能介紹
該功能開啟後,支援檔案多版本備份,可以安全地儲存檔案及其歷史版本,即使檔案被覆蓋或者錯誤修改,也可以輕鬆恢複檔案的歷史版本。
編輯或覆蓋檔案會產生歷史版本,支援列舉、查看、恢複、刪除歷史版本,支援為歷史版本設定標記資訊。
支援配置版本儲存期限(1-999天),或者設定不超期,支援進行周期內版本自動合并以避免產生過多歷史版本。
支援配置版本儲存個數(1-999個),並支援將最多50個版本設定為持續保留,持續保留的版本不會因超期或超過數量限制而被刪除。
前提條件
已建立網盤與相簿服務(開發人員版)域。
該功能僅限超級管理員或網盤管理員開啟。
開啟歷史版本
登入BasicUI,進入管理主控台。
在左側導覽列選擇。
開啟歷史版本開關。

歷史版本配置
在歷史版本右側單擊編輯可對歷史版本配置進行修改。
功能 | 說明 |
合并檔案歷史版本 | 預設開啟。檔案在10分鐘內的多次儲存結果(如線上編輯儲存、同步盤上傳)將合并產生一個歷史版本。取消勾選後,每次儲存結果均產生一個歷史版本(包含自動儲存和手動儲存)。 |
版本數量上限設定 |
|
版本存放期限設定 |
|
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"
}