2012-02-09 29 views
6

Tôi đang thêm thành công hình ảnh vào thùng trên S3, nhưng vấn đề là tôi không biết cách đặt loại nội dung thành 'image/png'. Đây là mã của tôiThêm siêu dữ liệu vào hình ảnh tải lên S3 bằng Python

image = Image.open(self.image) 
conn = S3Connection(settings.AWS_ACCESS_KEY_ID, settings.AWS_SECRET_ACCESS_KEY)  
out_im2 = cStringIO.StringIO() 
image.save(out_im2, 'PNG') 
b = conn.get_bucket('new_test_bucket') 
k = b.new_key(self.title+'.png') 
k.set_contents_from_filename(str(self.image)) 

Hiện tại, nó đang được tải lên dưới dạng 'application/octet-stream'.

Trả lời

14

Đây là cách mã tải lên hình ảnh của tôi (sử dụng boto) hoạt động:

k.set_metadata('Content-Type', mime) 
k.set_contents_from_file(data, policy='public-read') 
k.set_acl('public-read') 

Vâng ít nhất một phần của nó.

+0

liên kết đã chết – Alexis

0

Tôi thấy rằng việc đặt siêu dữ liệu trước khi bạn set_contents_from_file hoạt động đối với tôi. Tuy nhiên, tôi đang sử dụng GCS, vì vậy có thể khác nhau ..

bucket = conn.get_bucket('plots') 
k = bucket.new_key('000006') 
k.set_metadata('Content-Type', 'image/png') 
k.set_contents_from_stream(buff) 
Các vấn đề liên quan