matchUrl property
String
get
matchUrl
Generates a unique cache key for the download task, considering headers and range.
Implementation
String get matchUrl {
String cacheKey = Config.customCacheId.toLowerCase();
headers = headers?.map((key, value) => MapEntry(key.toLowerCase(), value));
Uri safeUri;
try {
safeUri = saveFile.toSafeUri();
} catch (e) {
safeUri = Uri(host: saveFile);
}
if (headers != null && headers!.containsKey(cacheKey)) {
safeUri = safeUri.replace(host: headers![cacheKey].toString());
}
Map<String, String> queryParameters = {};
queryParameters.addAll(safeUri.queryParameters);
if (startRange > 0) {
queryParameters.putIfAbsent("startRange", () => startRange.toString());
}
if (endRange != null) {
queryParameters.putIfAbsent("endRange", () => endRange.toString());
}
safeUri = safeUri.replace(queryParameters: queryParameters);
Uri cacheUri = VideoProxy.urlMatcherImpl.matchCacheKey(safeUri);
return cacheUri.toString().generateMd5;
}