Commits

Ian Lewis committed 871c248

Updated the S3BotoStorageFile to wrap a StringIO object better. It now supports the read() method with as size attribute for chunked reading.

  • Participants
  • Parent commits 8b3bdf4

Comments (0)

Files changed (1)

storages/backends/s3boto.py

         self._mode = mode
         self.key = storage.bucket.get_key(name)
         self._is_dirty = False
-        self.file = StringIO()
+        self._file = None
 
     @property
     def size(self):
         return self.key.size
 
-    def read(self, *args, **kwargs):
-        self.file = StringIO()
-        self._is_dirty = False
-        self.key.get_contents_to_file(self.file)
-        return self.file.getvalue()
+    @property
+    def file(self):
+        if self._file is None:
+            self._file = StringIO()
+            self._is_dirty = False
+            self.key.get_contents_to_file(self._file)
+            self._file.seek(0)
+        return self._file
 
     def write(self, content):
         if 'w' not in self._mode: