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);