From bed760dcc4dbdf1927c41cfff325cc56102ef962 Mon Sep 17 00:00:00 2001 From: Soren Hansen Date: Mon, 26 Jul 2010 23:26:54 +0200 Subject: 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. --- nova/objectstore/handler.py | 16 ++++++++++++---- 1 file 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 -- cgit