0

我正在 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
4

1 回答 1

0

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

        `content = urllib2.urlopen(img_url).read()`
于 2012-11-06T16:35:32.893 回答