diff options
author | Aleksey Lim <alsroot@sugarlabs.org> | 2014-05-08 13:44:00 (GMT) |
---|---|---|
committer | Aleksey Lim <alsroot@sugarlabs.org> | 2014-05-08 13:44:00 (GMT) |
commit | 03888767cf46f2e6433c1e89b3cee0320fc5012b (patch) | |
tree | a8377854bf0269044b3331040682a612d30ceef6 | |
parent | 70c1b1a26a610c082a49bd5fb29e6dca2bf47943 (diff) |
Return assets from the /assets API route
-rw-r--r-- | sugar_network/db/blobs.py | 2 | ||||
-rw-r--r-- | sugar_network/db/routes.py | 4 | ||||
-rw-r--r-- | sugar_network/toolkit/router.py | 6 |
3 files changed, 11 insertions, 1 deletions
diff --git a/sugar_network/db/blobs.py b/sugar_network/db/blobs.py index 0566e4f..14bbe9c 100644 --- a/sugar_network/db/blobs.py +++ b/sugar_network/db/blobs.py @@ -158,6 +158,8 @@ class Blobs(object): def get(self, digest): path = self.path(digest) + if not isinstance(digest, basestring): + digest = os.sep.join(digest) if exists(path + _META_SUFFIX): meta = _read_meta(path) if not exists(path): diff --git a/sugar_network/db/routes.py b/sugar_network/db/routes.py index 29507d3..22e3782 100644 --- a/sugar_network/db/routes.py +++ b/sugar_network/db/routes.py @@ -172,6 +172,10 @@ class Routes(object): def blobs(self): return self.volume.blobs.get(this.request.path[1:]) + @fallbackroute('GET', ['assets']) + def assets(self): + return self.volume.blobs.get(this.request.path) + @contextmanager def _post(self, access): content = this.request.content diff --git a/sugar_network/toolkit/router.py b/sugar_network/toolkit/router.py index 7b2186d..6e3b43b 100644 --- a/sugar_network/toolkit/router.py +++ b/sugar_network/toolkit/router.py @@ -376,7 +376,11 @@ class File(str): if meta: url = meta.get('location') if not url and digest: - url = '%s/blobs/%s' % (this.request.static_prefix, digest) + url = '%s/' % this.request.static_prefix + if '/' in digest: + url += digest + else: + url += 'blobs/' + digest self = str.__new__(cls, url) self.meta = meta |