上传到amazon s3的图片在浏览器不显示,而是下载

2024-06-18 11:08

本文主要是介绍上传到amazon s3的图片在浏览器不显示,而是下载,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

通过boto3把图片上传到s3上以后,图片不在浏览器显示,而是下载

问题解决很简单,重要的是解决思路

遇到问题一定要理智分析问题原因,找到根本原因,问题自然就解决了

1、先用curl 看一下这个图片的头是啥
说来惭愧,竟然不知道怎么拿到这个图片链接的header
在浏览器上输入链接,F12,勾选上Preserve log,然后访问此链接
在这里插入图片描述

这时在控制台就能看到请求了,然后把curl拿下了
在终端执行curl 命令

 curl 'http://xxxxxxxxxx.log' -H 'Connection: keep-alive' -H 'Pragma: no-cache' -H 'Cache-Control: no-cache' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: zh-CN,zh;q=0.9,en;q=0.8' -H 'Cookie: csrftoken=9HTnAyzu7nDOukolc8u1ufoD9GJdV7e1DAI6KkFUmETYe3IMAjFfj996YdryBy0T' --compressed **-k -v >/dev/null**

添加 -k -v 参数
>/dev/null是把下载结果丢掉

可以看到返回结果

< HTTP/1.1 200 OK
< Server: nginx/1.12.2
< Date: Sat, 20 Jul 2019 02:03:18 GMT
< Content-Type: application/octet-stream
< Content-Length: 14617
< Connection: keep-alive
< Last-Modified: Fri, 19 Jul 2019 15:37:36 GMT
< ETag: “5d31e3c0-3919”
< Accept-Ranges: bytes
<
{ [data not shown]

重点就是Content-Type,Content-Type是octet-stream,浏览器就会执行下载

2、解决问题
上传图片的时候指定Content-Type为 text/plain image/jpeg image/png浏览器都会显示而不下载,
因为图片有不同的样式,为了方便就都把Content-Type统一为image/jpeg,浏览器是不会只根据Content-Type的值去处理的,只是作为参考,浏览器会识别出正确格式而正确显示。
只不过我们设置成image/jpeg更贴边。

3、处理老图片
安装aws客户端
参考 https://docs.aws.amazon.com/zh_cn/cli/latest/userguide/cli-chap-install.html#post-install-configure

pip install awscli --upgrade --user

配置基本信息

$aws configure

$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS
Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]:json

执行命令把bucket下的所有内容变成image/jpeg格式

aws s3 cp s3://bucket_name/ s3://bucket_name/ --recursive  --include '*' --metadata-directive REPLACE --content-type='image/jpeg'

把以.jpg结尾的内容变成image/jpeg格式

aws s3 cp s3://bucket_name/ s3://bucket_name/ --recursive --exclude '*' --include '*.jpg' --metadata-directive REPLACE --content-type='image/jpeg'

这篇关于上传到amazon s3的图片在浏览器不显示,而是下载的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1071918

相关文章

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

Go语言如何判断两张图片的相似度

《Go语言如何判断两张图片的相似度》这篇文章主要为大家详细介绍了Go语言如何中实现判断两张图片的相似度的两种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 在介绍技术细节前,我们先来看看图片对比在哪些场景下可以用得到:图片去重:自动删除重复图片,为存储空间"瘦身"。想象你是一个

使用Python实现base64字符串与图片互转的详细步骤

《使用Python实现base64字符串与图片互转的详细步骤》要将一个Base64编码的字符串转换为图片文件并保存下来,可以使用Python的base64模块来实现,这一过程包括解码Base64字符串... 目录1. 图片编码为 Base64 字符串2. Base64 字符串解码为图片文件3. 示例使用注意

RedisTemplate默认序列化方式显示中文乱码的解决

《RedisTemplate默认序列化方式显示中文乱码的解决》本文主要介绍了SpringDataRedis默认使用JdkSerializationRedisSerializer导致数据乱码,文中通过示... 目录1. 问题原因2. 解决方案3. 配置类示例4. 配置说明5. 使用示例6. 验证存储结果7.

c/c++的opencv实现图片膨胀

《c/c++的opencv实现图片膨胀》图像膨胀是形态学操作,通过结构元素扩张亮区填充孔洞、连接断开部分、加粗物体,OpenCV的cv::dilate函数实现该操作,本文就来介绍一下opencv图片... 目录什么是图像膨胀?结构元素 (KerChina编程nel)OpenCV 中的 cv::dilate() 函

如何关闭Mac的Safari通知? 3招教你关闭Safari浏览器网站通知的技巧

《如何关闭Mac的Safari通知?3招教你关闭Safari浏览器网站通知的技巧》当我们在使用Mac电脑专注做一件事情的时候,总是会被一些消息推送通知所打扰,这时候,我们就希望关闭这些烦人的Mac通... Safari 浏览器的「通知」功能本意是为了方便用户及时获取最新资讯,但很容易被一些网站滥用,导致我们

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现

idea中project的显示问题及解决

《idea中project的显示问题及解决》:本文主要介绍idea中project的显示问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录idea中project的显示问题清除配置重China编程新生成配置总结idea中project的显示问题新建空的pr