diff options
| author | Andrew Godwin <andrew@aeracode.org> | 2013-08-19 18:30:48 +0100 |
|---|---|---|
| committer | Andrew Godwin <andrew@aeracode.org> | 2013-08-19 18:30:48 +0100 |
| commit | b6a957f0ba8a2ed1b24d7ee042a9c4beaf51ab03 (patch) | |
| tree | 87d42b9e8d3d4c1516b53eee1d9332735762826a /django/core/files/storage.py | |
| parent | 52edc16086e3c28a78c31975bb4da2f9450590b4 (diff) | |
| parent | 3c0300405009b82b52fd15483371097221662fcd (diff) | |
Merge remote-tracking branch 'core/master' into schema-alteration
Conflicts:
docs/ref/django-admin.txt
Diffstat (limited to 'django/core/files/storage.py')
| -rw-r--r-- | django/core/files/storage.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/django/core/files/storage.py b/django/core/files/storage.py index 5d301a317c..5e587da2da 100644 --- a/django/core/files/storage.py +++ b/django/core/files/storage.py @@ -172,7 +172,16 @@ class FileSystemStorage(Storage): directory = os.path.dirname(full_path) if not os.path.exists(directory): try: - os.makedirs(directory) + if settings.FILE_UPLOAD_DIRECTORY_PERMISSIONS is not None: + # os.makedirs applies the global umask, so we reset it, + # for consistency with FILE_UPLOAD_PERMISSIONS behavior. + old_umask = os.umask(0) + try: + os.makedirs(directory, settings.FILE_UPLOAD_DIRECTORY_PERMISSIONS) + finally: + os.umask(old_umask) + else: + os.makedirs(directory) except OSError as e: if e.errno != errno.EEXIST: raise |
