From cee7a1c163c0400610234f0f62455ba6d7e3160b Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 10 Apr 2011 17:03:23 -0500 Subject: [PATCH 1/1] get_file() implementation for BasicFileStorage --- mediagoblin/storage.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index 89b86315..e6e3a59d 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -86,7 +86,7 @@ class StorageInterface(object): # Subclasses should override this method. self.__raise_not_implemented() - def get_file(self, filepath, mode): + def get_file(self, filepath, mode='r'): """ Return a file-like object for reading/writing from this filepath. @@ -156,8 +156,16 @@ class BasicFileStorage(StorageInterface): def file_exists(self, filepath): return os.path.exists(self._resolve_filepath(filepath)) - def get_file(self, filepath, mode): - pass + def get_file(self, filepath, mode='r'): + # Make directories if necessary + if len(filepath) > 1: + directory = self._resolve_filepath(filepath[:-1]) + if not os.path.exists('directory'): + os.makedirs(directory) + + # Grab and return the file in the mode specified + return open(self._resolve_filepath(filepath), mode) + def delete_file(self, filepath): pass -- 2.25.1