使用 DeleteStoredData 管理快取資料

MIP SDK 保護引擎會將保護授權與服務發現資料快取於本地,以提升效能並減少網路呼叫。 隨著時間推移,這種快取會成長,尤其是在處理大量受保護內容的應用程式中。 從 MIP SDK 1.18 開始,DeleteStoredData()ProtectionEngine 方法提供了一種以程式方式移除快取資料的方法。

概觀

DeleteStoredData() API 可在 ProtectionEngine 上使用,並提供兩種重載方法:

  • 刪除所有或過期資料:傳遞布林值以刪除所有快取資料或僅刪除過期的條目。
  • 在某個時間點前刪除資料:指定特定時間點,刪除該時間點之前所有緩存的資料。

這對於以下情況特別有用:

  • 伺服器或守護程序處理大量受保護內容,並需管理磁碟使用。
  • 合規情境中,必須定期清除快取授權資料。
  • 長期執行的應用程式 會隨時間累積快取資料。

C++ 範例

#include "mip/protection/protection_engine.h"

// Delete only expired cached data (default behavior)
protectionEngine->DeleteStoredData();

// Delete all cached data
protectionEngine->DeleteStoredData(true);

// Delete cached data older than 30 days
auto thirtyDaysAgo = std::chrono::system_clock::now() - std::chrono::hours(24 * 30);
protectionEngine->DeleteStoredData(thirtyDaysAgo);

C# (.NET) 範例

// Delete only expired cached data
protectionEngine.DeleteStoredData();

// Delete all cached data
protectionEngine.DeleteStoredData(deleteAllData: true);

// Delete cached data older than 30 days
var thirtyDaysAgo = DateTime.UtcNow.AddDays(-30);
protectionEngine.DeleteStoredData(thirtyDaysAgo);

Java 範例

// Delete only expired cached data
protectionEngine.deleteStoredData();

// Delete all cached data
protectionEngine.deleteStoredData(true);

// Delete cached data older than 30 days
ZonedDateTime thirtyDaysAgo = ZonedDateTime.now().minusDays(30);
protectionEngine.deleteStoredData(thirtyDaysAgo);