使用boto强制浏览器显示图像而不是下载它?

时间:2014-10-03 17:52:38

标签: python amazon-s3 boto

我有以下图片文件:

https://s3-us-west-1.amazonaws.com/premiere-avails/008378019847.jpg

如果单击该链接,将强制下载到您的浏览器。如何在浏览器中打开此文件,例如以下链接如何? https://lh3.googleusercontent.com/-r-NV4YMr0Gc/AAAAAAAAAAI/AAAAAAAAFvE/BcDknpxfm7M/s120-c/photo.jpg

我想在批量操作中使用boto来完成此任务。

2 个答案:

答案 0 :(得分:4)

当我使用Chrome网络检查员访问您的图片时,我看到application/octet-streamcontent-type

我认为您需要将content-type指定为image/jpeg。我在S3存储桶上对此进行了测试,这解决了“问题”问题。由application/octet-stream诱导。

我不知道如何使用boto进行批量操作,但this answer显示了如何在单个对象上执行此操作。您只想将content-type元数据更改为image/jpeg

答案 1 :(得分:0)

您可以在将图像发送到s3

之前进行设置
import boto
conn = boto.connect_s3(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
bucket = conn.get_bucket("your-bucket")
key = bucket.new_key("your-key")
key.content_type = "image/jpeg"
key.set_contents_from_string("content")
key.make_public()