#23759: Storage.get_available_name should preserve all file extensions, not just the first one --------------------------------------+-------------------- Reporter: thenewguy | Owner: nobody Type: Uncategorized | Status: new Component: File uploads/storage | Version: 1.7 Severity: Normal | Keywords: Triage Stage: Unreviewed | Has patch: 0 Easy pickings: 1 | UI/UX: 0 --------------------------------------+-------------------- `get_available_name` only preserves the first file extension. If the file is `foo.tar.gz` then `get_available_name` will return `foo.tar_RANDOM.gz` instead of `foo_RANDOM.tar.gz`
https://github.com/django/django/blob/master/django/core/files/storage.py#L71 {{{ def get_available_name(self, name): """ Returns a filename that's free on the target storage system, and available for new content to be written to. """ dir_name, file_name = os.path.split(name) file_root, file_ext = os.path.splitext(file_name) # If the filename already exists, add an underscore and a random 7 # character alphanumeric string (before the file extension, if one # exists) to the filename until the generated filename doesn't exist. while self.exists(name): # file_ext includes the dot. name = os.path.join(dir_name, "%s_%s%s" % (file_root, get_random_string(7), file_ext)) return name }}} -- Ticket URL: <https://code.djangoproject.com/ticket/23759> Django <https://code.djangoproject.com/> The Web framework for perfectionists with deadlines. -- You received this message because you are subscribed to the Google Groups "Django updates" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-updates+unsubscr...@googlegroups.com. To post to this group, send email to django-updates@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/052.71f09b10df776ae66b226116448ae948%40djangoproject.com. For more options, visit https://groups.google.com/d/optout.