get method

Future<String?> get(
  1. String key
)

Implementation

Future<String?> get(String key) async {
  try {
    final raw = _box.get(key);
    if (raw == null) return null;

    final entry = CacheEntry.fromJson(Map<String, dynamic>.from(raw));
    if (!await File(entry.localPath).exists()) {
      await _box.delete(key);
      return null;
    }

    // Update LRU timestamp
    await _box.put(
        key,
        CacheEntry(
          key: entry.key,
          localPath: entry.localPath,
          size: entry.size,
          cachedAt: entry.cachedAt,
          lastAccessedAt: DateTime.now(),
        ).toJson());

    return entry.localPath;
  } catch (e) {
    CloudLogger.error('Cache get failed key=$key', error: e);
    return null;
  }
}