diff options
| author | Soren Hansen <soren.hansen@rackspace.com> | 2010-07-26 23:26:54 +0200 |
|---|---|---|
| committer | Soren Hansen <soren.hansen@rackspace.com> | 2010-07-26 23:26:54 +0200 |
| commit | bed760dcc4dbdf1927c41cfff325cc56102ef962 (patch) | |
| tree | 63e5ac066b6e5de681188def690183f50884cfde | |
| parent | 1bef8168b66a33033a9181d3e180d1c9718ebb55 (diff) | |
| download | nova-bed760dcc4dbdf1927c41cfff325cc56102ef962.tar.gz nova-bed760dcc4dbdf1927c41cfff325cc56102ef962.tar.xz nova-bed760dcc4dbdf1927c41cfff325cc56102ef962.zip | |
Make image downloads work again in S3 handler. Listing worked, but fetching the images failed because I wasn't clever enough to use twisted.web.static.File correctly.
| -rw-r--r-- | nova/objectstore/handler.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/nova/objectstore/handler.py b/nova/objectstore/handler.py index 6e76abb5a..4074f005d 100644 --- a/nova/objectstore/handler.py +++ b/nova/objectstore/handler.py @@ -121,7 +121,7 @@ class S3(Resource): if name == '': return self elif name == '_images': - return ImageResource() + return ImagesResource() else: return BucketResource(name) @@ -226,13 +226,21 @@ class ObjectResource(Resource): return '' class ImageResource(Resource): + isLeaf = True + + def __init__(self, name): + Resource.__init__(self) + self.img = image.Image(name) + + def render_GET(self, request): + return static.File(self.img.image_path, defaultType='application/octet-stream').render_GET(request) + +class ImagesResource(Resource): def getChild(self, name, request): if name == '': return self else: - request.setHeader("Content-Type", "application/octet-stream") - img = image.Image(name) - return static.File(img.image_path) + return ImageResource(name) def render_GET(self, request): """ returns a json listing of all images |
