2010-11-18 4 views
4

Hier habe ich eine Bild-URL. Dateiname Bild-URLladen Sie das Bild auf s3 mit Boto

def upload(filename, content) 
    conn = S3Connection(aws_access_key, aws_secret_key) 
    b = Bucket(conn, bucket_name) 
    k = Key(b) 
    k.key = filename..split('/')[::-1][0] 
    k.set_metadata("Content-Type", 'images/jpeg') 
    k.set_contents_from_string(content) 
    k.set_acl("public-read") 

Es lädt die Dinge auf die S3, aber es zeigt den Fehler:

/tmp/t.jpeg could not be opened, because the associated helper application does not exist. Change the association in your preferences.

+0

Welche Zeile wirft den Fehler? Es scheint mir wahrscheinlich, dass Ihr Problem möglicherweise nicht in dem Code steckt, den Sie eingefügt haben. –

+0

Dies scheint eine Fehlermeldung zu sein, die Sie erhalten, wenn Sie versuchen, das JPEG-Bild in Firefox/Windows zu öffnen. Sie können JPEG-Bilder immer mit dem Windows Photo Viewer öffnen. Überprüfen Sie, ob die Anwendung zum Öffnen von * .jpg und * .jpeg Dateien in Firefox oder Windows korrekt zugeordnet ist. – scoffey

Antwort

2
k.key = filename..split('/')[::-1][0] 

Diese Linie hat einige Syntaxfehler. ersetzen mit .

Überprüfen Sie Ihre Dateiberechtigung für die Bilddatei, die Sie versuchen zu lesen. Aus der Fehlermeldung scheint es, dass Sie oder zumindest Ihr Programm keinen Lesezugriff auf diese Datei haben.

5

Ich bin mir ziemlich sicher, Bilder/JPEG ist ein Tippfehler. Der richtige MIME-Typ lautet:

image/jpeg