Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 保存到S3,但文件为空_Python_Amazon S3_Png_Binary Data - Fatal编程技术网

Python 保存到S3,但文件为空

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

我用这个答案将PNG上传到S3:

文件被上传到S3,但是每当我双击图像显示它时,url是“about:blank”,屏幕是空白的

当我下载图像时,它会作为我保存的图像显示在我的计算机上。我最后的办法是手动测试url。我公开了照片,然后尝试:

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