Typora图片存储于腾讯云COS无法在md文件显示的问题及其解决方案

下面这个链接说明了搭建图床的方法,比较简单:

https://cloud.tencent.com/document/product/436/74373

如果搭建完毕,在typora验证上传选项会显示如下的成功界面:


但是存在一个问题,即图片上传完毕,picgo提示已经完成上传后,但是md文件中并不能正常显示图片的问题,其中md文件显示如下:


但是在picgo和腾讯云对象存储控制台都能够正常访问该图片,在浏览器访问该图片链接发现access denied的问题:

原因在于typora上传的目标存储同没有设置公开读取的权限,下面这篇文章介绍了问题出现的原因:

https://cloud.tencent.com/document/product/436/54303

当 COS 请求出现403错误码时,可参考以下流程排查问题原因:

  1. 检查请求是否为 CORS 跨域访问请求,失败的跨域请求会返回 "AccessForbidden"。
  2. 检查请求是否命中存储桶防盗链配置,因防盗链规则引起的 403 错误码,COS 会返回 "You are denied by bucket referer rule"。
  3. 检查请求是否是匿名请求,向非公有读的对象发起不带签名的请求,会返回 "Access Denied.",如要为存储桶或对象设置公有读,参考 设置访问权限 或 设置对象的访问权限。
  4. 检查请求密钥和请求签名是否正确。
    4.1 当签名未正确使用 SecretId 时,COS 会返回 "InvalidAccessKeyId"。
    4.2 当本机时间不准,或请求时间超出签名有效期时,COS 会返回 "RequestTimeTooSkewed" 或 "Request has expired"。
    4.3 当生成签名的计算方式存在问题时,COS 会返回 "SignatureDoesNotMatch"。
  5. 检查发起请求的子账号或临时密钥是否授予了相应访问权限。
    5.1 检查子账号的访问权限,未授予资源访问权限的子账号请求(包括资源描述元素错误,例如 APPID 输入错误),会返回 "Access Denied."。
    5.2 对于使用临时密钥发起的请求,申请临时密钥时填写的策略会限制临时密钥请求的资源范围,详见 临时密钥生成与使用指引。
  6. 检查所请求对象是否为归档类型或深度归档类型,此类请求 COS 会返回 "InvalidObjectState"。

解决方案

  1. 登录 对象存储控制台。

    具体步骤为:进入腾讯云网站=》登录=》进入控制台=》进入对象存储控制台

  2. 在左侧导航栏中,选择存储桶列表,进入存储桶管理页面。

  3. 找到需要操作的存储桶,单击该存储桶名称,进入存储桶配置页面。

  4. 在左侧导航栏中,选择权限管理 > 存储桶访问权限,进入存储桶访问权限管理页面。

  5. 在"存储桶访问权限"栏中,检查访问 COS 的账号是否配置了访问权限。


    再次尝试在浏览器访问该图片链接发现能够成功访问:

回到Typora,重启该文档,发现图片成功显示:

至此,问题成功解决

另,其实设置存储桶私有读写应该也是可以的,但是这可能要求Typora访问时进行验证,这样的方法我还没有尝试过,上面是最简单的。

相关推荐
沐欣工作室_lvyiyi1 分钟前
基于腾讯云的物联网导盲助手设计与实现(论文+源码)
单片机·物联网·云计算·毕业设计·腾讯云·导盲杖
计算机毕设定制辅导-无忧学长2 分钟前
基于Spring Boot的酒店管理系统
java·spring boot·后端
纳于大麓22 分钟前
Android Maven私服搭建(Windows)
java·maven
深海呐1 小时前
Android 编译速度优化:JVM堆内存扩充
android·jvm·jvm内存扩充·android 加快编译速度
哈基米喜欢哈哈哈1 小时前
低版本的JVM遇到高版本的class字节码是否会报错
java·jvm
235161 小时前
【并发编程】详解volatile
java·开发语言·jvm·分布式·后端·并发编程·原理
洛小豆2 小时前
java 中 char 类型变量能不能储存一个中文的汉字,为什么?
java·后端·面试
爱吃烤鸡翅的酸菜鱼2 小时前
从数据库直连到缓存预热:城市列表查询的性能优化全流程
java·数据库·后端·spring·个人开发
心随雨下2 小时前
Flutter中新手需要掌握的几种Widget
android·flutter·ios
叶辞树2 小时前
查看安卓设备的音视频解码器信息
android