亚马逊S3:我看到“原始内容”存储而不是图像

时间:2012-11-05 13:42:55

标签: python django amazon-s3

我正在ping一个给我路径图片的API。然后我打开/读取该图像并将其保存到s3上的数据库中。

问题在于,它不是存储实际图像,而是存储单词Raw Content。我究竟做错了什么?

这是我的相关代码。基本上我将文件的路径存储在字段coverart中,函数store_in_s3_partpic返回文件的路径。此功能显然也会将内容加载到S3。

pic = partpics['url']
# CACHING
img_url = pic
name = urlparse(img_url).path.split('/')[-1]
#wrap your file content??
content = ContentFile(urllib2.urlopen(img_url).read())
unipart.coverart = store_in_s3_partpic(name, content)

我在这里做错什么会导致我只看到'原始内容'?

这是我的store_in_s3_partpic代码:

def store_in_s3_partpic(name, content):
    print "STORING PARTPIC"
    conn = S3Connection(settings.AWS_ACCESS_KEY_ID, settings.AWS_SECRET_ACCESS_KEY)
    pathtofile = "partpics/%s" % (name)
    b = conn.create_bucket('mybucket')
    mime = mimetypes.guess_type(name)[0]
    k = Key(b)
    k.key = "/media/partpics/%s" % (name)
    k.set_metadata("Content-Type", mime)
    k.set_contents_from_string(content)
    k.set_acl("public-read")
    return pathtofile

1 个答案:

答案 0 :(得分:0)

我不知道为什么,但我将文件打开命令改为此,现在一切正常:

        `content = urllib2.urlopen(img_url).read()`