You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When one can't enable AUTO_OVERWRITE, trying to reusing the same filename will always fail, e.g:
if storage.exists(path):
storage.delete(path)
storage.save(path)
save() calls get_available_name() which, because of the cached results, detects the path still exists and appends the disambiguating suffix. Implicitly adding the suffix is a bad behaviour, but having to clean the cache manually is even worse:
if storage.exists(path):
storage.delete(path)
storage.last_headers_name = None
storage.save(path, content)
Resetting last_headers_name in delete will definitely help in this particular use-case, but there're others where this cache should be invalidated as well, such as rmtree, _save, and (probably, though I'm not sure) makedirs.
I understand the caching implemented on
get_headers
(https://github.com/dennisv/django-storage-swift/blob/master/swift/storage.py#L303) is useful for the reasons described in the code, however it causes a little bit of a pain the following scenario:When one can't enable AUTO_OVERWRITE, trying to reusing the same filename will always fail, e.g:
save()
callsget_available_name()
which, because of the cached results, detects the path still exists and appends the disambiguating suffix. Implicitly adding the suffix is a bad behaviour, but having to clean the cache manually is even worse:Could it be done in https://github.com/dennisv/django-storage-swift/blob/master/swift/storage.py#L327 ?
The text was updated successfully, but these errors were encountered: