Skip to content

Commit

Permalink
SFTPStorage: set File properties
Browse files Browse the repository at this point in the history
Fixes #487
  • Loading branch information
jschneier committed Aug 26, 2018
1 parent 7be485e commit 158bfc3
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions storages/backends/sftpstorage.py
Original file line number Diff line number Diff line change
Expand Up @@ -199,34 +199,34 @@ def url(self, name):

class SFTPStorageFile(File):
def __init__(self, name, storage, mode):
self._name = name
self._storage = storage
self._mode = mode
self._is_dirty = False
self.name = name
self.mode = mode
self.file = BytesIO()
self._storage = storage
self._is_read = False
self._is_dirty = False

@property
def size(self):
if not hasattr(self, '_size'):
self._size = self._storage.size(self._name)
self._size = self._storage.size(self.name)
return self._size

def read(self, num_bytes=None):
if not self._is_read:
self.file = self._storage._read(self._name)
self.file = self._storage._read(self.name)
self._is_read = True

return self.file.read(num_bytes)

def write(self, content):
if 'w' not in self._mode:
if 'w' not in self.mode:
raise AttributeError("File was opened for read-only access.")
self.file = BytesIO(content)
self._is_dirty = True
self._is_read = True

def close(self):
if self._is_dirty:
self._storage._save(self._name, self)
self._storage._save(self.name, self)
self.file.close()

0 comments on commit 158bfc3

Please sign in to comment.