diff options
author | Lars Wirzenius <liw@liw.fi> | 2017-12-03 19:07:24 +0200 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2017-12-03 20:12:51 +0200 |
commit | 4e9b1ddfae711ce38d743a3faccf49447ab10f75 (patch) | |
tree | 104858cae517e80b1507c0519fc21885c2a605f2 /ick2/blob_store.py | |
parent | 107ffc0a60de703d84957cf6d8948ed7d61d7362 (diff) | |
download | ick2-4e9b1ddfae711ce38d743a3faccf49447ab10f75.tar.gz |
Add: blob service
Diffstat (limited to 'ick2/blob_store.py')
-rw-r--r-- | ick2/blob_store.py | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/ick2/blob_store.py b/ick2/blob_store.py new file mode 100644 index 0000000..7d02cbf --- /dev/null +++ b/ick2/blob_store.py @@ -0,0 +1,51 @@ +# Copyright (C) 2017 Lars Wirzenius +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + + +import os + + +import ick2 + + +class BlobStore: + + def __init__(self): + self._blobdir = None + + def get_blob_directory(self): + return self._blobdir + + def set_blob_directory(self, dirname): + self._blobdir = dirname + if not os.path.exists(self._blobdir): + os.makedirs(self._blobdir) + + def store_blob(self, name, blob): + filename = self._blob_filename(name) + ick2.log.log( + 'trace', msg_text='store_blob', name=name, filename=filename) + with open(filename, 'wb') as f: + f.write(blob) + + def get_blob(self, name): + filename = self._blob_filename(name) + ick2.log.log( + 'trace', msg_text='get_blob', name=name, filename=filename) + with open(filename, 'rb') as f: + return f.read() + + def _blob_filename(self, name): + return os.path.join(self._blobdir, name) |