summaryrefslogtreecommitdiff
path: root/fs/expose/django_storage.py
diff options
context:
space:
mode:
authorrfkelly0 <rfkelly0@67cdc799-7952-0410-af00-57a81ceafa0f>2010-05-05 03:55:31 +0000
committerrfkelly0 <rfkelly0@67cdc799-7952-0410-af00-57a81ceafa0f>2010-05-05 03:55:31 +0000
commitf00a97c8598f5169d1f30635e0955b8155ab6fd8 (patch)
treeb2c77230d2116964e14e2f680a92e60d47eddd9c /fs/expose/django_storage.py
parent4145986771825b3d4efd46d7ab7d2b616271dfcf (diff)
downloadpyfilesystem-git-f00a97c8598f5169d1f30635e0955b8155ab6fd8.tar.gz
make django_storage.FSStorage raise OSError, not FSError
Diffstat (limited to 'fs/expose/django_storage.py')
-rw-r--r--fs/expose/django_storage.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/fs/expose/django_storage.py b/fs/expose/django_storage.py
index 86709b0..ed8b303 100644
--- a/fs/expose/django_storage.py
+++ b/fs/expose/django_storage.py
@@ -9,8 +9,8 @@ Use an FS object for Django File Storage
from django.conf import settings
from django.core.files.storage import Storage
-from fs.path import abspath
-
+from fs.path import abspath, dirname
+from fs.errors import convert_fs_errors
class FSStorage(Storage):
"""Expose an FS object as a Django File Storage object."""
@@ -34,19 +34,25 @@ class FSStorage(Storage):
raise NotImplementedError
return path
+ @convert_fs_errors
def size(self,name):
return self.fs.getsize(name)
+ @convert_fs_errors
def url(self,name):
return self.base_url + abspath(name)
+ @convert_fs_errors
def _open(self,name,mode):
- return selfs.fs.open(name,mode)
+ return self.fs.open(name,mode)
+ @convert_fs_errors
def _save(self,name,content):
+ self.fs.makedir(dirname(name),allow_recreate=True,recursive=True)
self.fs.setcontents(name,content)
return name
+ @convert_fs_errors
def delete(self,name):
try:
self.fs.remove(name)