2012-02-09 8 views
6

Sto aggiungendo con successo un'immagine a un bucket su S3, ma il problema è che non sono sicuro di come impostare il tipo di contenuto su "immagine/png". Ecco il mio codiceAggiungi metadati al caricamento di immagini su S3 con 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)) 

Attualmente viene caricato come 'application/octet-stream'.

risposta

14

Ecco come il mio codice di caricamento delle immagini (usando boto) funziona:

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

Beh, almeno una parte di esso.

+0

il link è morto – Alexis

0

Ho trovato che l'impostazione dei metadati prima di voi set_contents_from_file funziona per me. Sto usando GCS però, quindi forse è diverso ..

bucket = conn.get_bucket('plots') 
k = bucket.new_key('000006') 
k.set_metadata('Content-Type', 'image/png') 
k.set_contents_from_stream(buff) 
Problemi correlati