#ios #swift #md5 #kingfisher
Вопрос:
Почему kingfisher создал cacheFileName с использованием md5? Есть ли какие-то другие особые причины?
// DiskStorage.swift in Kingfisher
func cacheFileName(forKey key: String) -> String {
if config.usesHashedFileName {
let hashedKey = key.kf.md5
if let ext = config.pathExtension {
return "(hashedKey).(ext)"
} else if config.autoExtAfterHashedFileName,
let ext = key.kf.ext {
return "(hashedKey).(ext)"
}
return hashedKey
} else {
if let ext = config.pathExtension {
return "(key).(ext)"
}
return key
}
}
Комментарии:
1. Что такое зимородок? github.com/onevcat/Kingfisher/blob/…
Ответ №1:
Использование md5 файла в качестве имени файла в кэше является распространенным шаблоном. Имя кэша изменится при изменении файла, в то время как исходный URL-адрес может и не измениться.
Обратите внимание, что расширение сохранено, потому что оно может пригодиться при дальнейшем использовании файла.