2010-11-18 19 views
4

Ici, j'ai une URL d'image. nom de fichier est l'image urltélécharger l'image sur s3 en utilisant 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") 

Il télécharger des choses à la S3, mais il montre l'erreur:

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

+0

Quelle ligne génère l'erreur? Il me semble probable que votre problème ne soit pas dans le morceau de code que vous avez collé. –

+0

Cela ressemble à un message d'erreur que vous obtenez lorsque vous essayez d'ouvrir l'image JPEG dans Firefox/Windows. Vous pouvez toujours ouvrir des images JPEG avec Windows Photo Viewer. Vérifiez que l'application pour ouvrir les fichiers * .jpg et * .jpeg est correctement associée dans Firefox ou Windows. – scoffey

Répondre

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

Cette ligne a une erreur de syntaxe. remplacer par .

Vérifiez l'autorisation de votre fichier pour le fichier image que vous essayez de lire. À partir du message d'erreur, il semble que vous, ou au moins votre programme n'a pas accès en lecture à ce fichier.

5

Je suis sûr que images/jpeg est une faute de frappe. Le type MIME correct est:

image/jpeg