我们正在开发一个存储应用程序,除了其他功能外,还可以通过云同步和备份用户设备上的照片.我们一起使用文件大小和图像名称来形成临时哈希以进行比较.我们面临的问题是,当设备上有大量照片的用户(> 10K)首次注册时,获取和检索照片的文件大小需要很长时间~3.5分钟.
我们像这样使用PHImageManager:
photoManager.requestImageData(for: asset, options: options, resultHandler: callback)
Run Code Online (Sandbox Code Playgroud)
这是从这里调用和处理的:
let semaphore = DispatchSemaphore(value: 0)
let operation = GetOriginalImageOperation(photoManager: self.photoManger,
asset: asset) { (data, string, orientation, dict) in
if let wrapDict = dict, let dataValue = data {
if let name = asset.originalFilename {
originalFileName = name
}
if let unwrapedUrl = wrapDict["PHImageFileURLKey"] as? URL {
url = unwrapedUrl
}
size = UInt64(dataValue.count)
md5 = String(format: "%@%i", originalFileName, size)
semaphore.signal()
} else {
semaphore.signal()
}
}
Run Code Online (Sandbox Code Playgroud)
文件大小不是元数据的一部分,因此检索需要时间(例如在Android中不是这种情况).
有谁知道加速这种方式的方法?也许批量检索?
先感谢您.