getOrUploadFile method

Future<GoogleFile?> getOrUploadFile({
  1. required List<int> data,
  2. required String mimeType,
  3. required String displayName,
})

Get or upload a file, using cache when possible

Implementation

Future<GoogleFile?> getOrUploadFile({
  required List<int> data,
  required String mimeType,
  required String displayName,
}) async {
  final cacheKey = '${displayName}_${data.length}_$mimeType';

  // Check cache first
  final cachedFile = _fileCache[cacheKey];
  if (cachedFile != null && cachedFile.isActive) {
    return cachedFile;
  }

  // Upload new file
  try {
    return await uploadFile(
      data: data,
      mimeType: mimeType,
      displayName: displayName,
    );
  } catch (e) {
    client.logger.warning('File upload failed: $e');
    return null;
  }
}