Add multi-platform aware cache.#704
Conversation
| AssetBundleCreateRequest bundleRequest = await BasisEncryptionToData.GenerateBundleFromFile(wrapper.LoadableBundle.UnlockPassword, output.Item2, output.Item1.AssetBundleCRC, report); | ||
| if (bundleRequest == null || bundleRequest.assetBundle == null) | ||
| { | ||
| if (shouldUseOnDiskMeta && !didForceRedownload) |
There was a problem hiding this comment.
Will this cause a feedback loop of no bad bundle -> download -> attempt bad bundle -> download repeating
There was a problem hiding this comment.
The next check of didForceRedownload is the check flag so it only does it once per invocation.
There was a problem hiding this comment.
Only thing we could do is either delete the bad local file, and return an error about the download being bad.
|
Would separating the folder structure also help to reduce churn of redownloading? |
Only redownload when it fails to load the cache. So atm it just leaves the old cache file. |
Granted using separate folders will reduce Startup Churn. |
…to apporiate locations that need the data.
Branch summary: Platform-aware cache for downloaded BEE/BME content.
This branch adds multi-platform awareness to the shared bundle cache so Linux and Windows builds no longer clobber each other when they download the same remote content. Previously the cache keyed on remote URL and UniqueVersion only, which meant avatars, props, worlds, preloads, and content-share items could reuse or overwrite the wrong platform payload. That would cause cases where metadata said a platform was supported but the cached bytes on disk were actually from another platform.
What changed:
Scope:
Net result: