Python 保存到S3,但文件为空
我用这个答案将PNG上传到S3: 文件被上传到S3,但是每当我双击图像显示它时,url是“about:blank”,屏幕是空白的 当我下载图像时,它会作为我保存的图像显示在我的计算机上。我最后的办法是手动测试url。我公开了照片,然后尝试:Python 保存到S3,但文件为空,python,amazon-s3,png,binary-data,Python,Amazon S3,Png,Binary Data,我用这个答案将PNG上传到S3: 文件被上传到S3,但是每当我双击图像显示它时,url是“about:blank”,屏幕是空白的 当我下载图像时,它会作为我保存的图像显示在我的计算机上。我最后的办法是手动测试url。我公开了照片,然后尝试: https://s3.amazonaws.com/BUCKET_NAME/IMAGE_NAME.png 这就给了我: 从上面的答案中是否还有另一个步骤导致文件上传不正确?我将粘贴我的代码(与上面的链接非常相似),以防万一 image = Image.o
https://s3.amazonaws.com/BUCKET_NAME/IMAGE_NAME.png
这就给了我:
从上面的答案中是否还有另一个步骤导致文件上传不正确?我将粘贴我的代码(与上面的链接非常相似),以防万一
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(out_im2.getvalue())
我更喜欢PHP而不是Python,但据我所知,AmazonS3需要定义文件的类型
您需要发送mime类型(例如image/png),以便服务器识别文件,因为S3不是实际的web服务器,它不太关心文件的扩展名。你也可以称它为“dipiddoo.moo”,只要类型是image/png,它就可以工作。我更像是一个PHP而不是Python的家伙,但据我所知,Amazon S3需要定义文件的类型 您需要发送mime类型(例如image/png),以便服务器识别文件,因为S3不是实际的web服务器,它不太关心文件的扩展名。您可以将其称为“dipiddoo.moo”,只要类型为image/png,它就可以工作。设置mimetype如下:
k.set_contents_from_filename(out_im2.getvalue(), {'Content-Type' : 'image/png'})
设置mimetype如下:
k.set_contents_from_filename(out_im2.getvalue(), {'Content-Type' : 'image/png'})
此外,请检查您的权限。我玩得很开心。正如我说的,我不是一个PHP的家伙,所以我不知道。如果您可以选择添加自定义HTTP头添加内容类型:image/pngAlso,请检查您的权限。我玩得很开心。正如我说的,我不是一个PHP的家伙,所以我不知道。如果您有任何添加自定义HTTP头的选项,请添加内容类型:image/png