イメージへのパスを提供している API に ping を実行しています。次に、その画像を開いて読み取り、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