2012-11-05 2 views
0

이미지 경로를 제공하는 API에 ping을 보내고 있습니다. 그런 다음 해당 이미지를 열고 읽으며 s3의 데이터베이스에 저장합니다.Amazon S3 : 이미지가 아니라 'Raw Content'가 저장됩니다.

실제 이미지를 저장하는 대신 문제가있는 것은 단어 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) 

내가 여기 'Raw Content'가 보일 정도로 잘못된 것이 있습니까? 내가하지만이 파일 열기 명령을 변경 왜 아무 생각이없고 모든 것이 지금 작동

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 
+0

여기 내 store_in_s3_partpic 코드입니다 .urlopen (img_url) .read()'? – Marcin

+0

어 ... 어떻게 알아낼 수 있습니까? 미안해, 초보자 같아. – user1328021

+0

나는'print content' 문을했고'Raw Content'도 말합니다. – user1328021

답변

0

:

는`urllib2가의 원료 함량 무엇
 `content = urllib2.urlopen(img_url).read()`