侧边栏壁纸
博主头像
KLCode

水到绝处是风景,人到绝处是重生

  • 累计撰写 24 篇文章
  • 累计创建 17 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Typora进阶:PicGo+阿里云OSS部署Typora图床

Typora进阶:PicGo+阿里云OSS部署Typora图床

一. 问题描述

由于md文件不支持内嵌图片, 所有图片都以外部链接的方式插入,图片加载方式主要有三种:本地路径、图片链接地址、base64编码。如果需要将分享文章内容,那么就需要有自己的存储图片空间。通常我们会采用远程仓库对象存储OSS作为图床。

  1. 存储图片到本地路径。分享时需要将图片也一起打包,不理想,而且容易丢
  2. 网上链接地址。链接地址方便快捷,但是需要管理网络图片资源(推荐)

二. 解决方案

  • 方案一:创建公共的Gitee/Github仓库作为远端图床。通过PicGo软件实现自动上传图片。(2022年3月后gitee添加防盗链,不推荐)
  • 方案二:使用阿里云对象存储OSS作为图床管理。(安全稳定,推荐)

【2022.10.19 更新】

重新试了下流程,发现Gitee插件不能用了。日志显示request 403。原因是2022年3月26日后,gitee加了防盗链导致Gitee图床无法使用。Gitee也顶不住了,公共的图片资源被访问频繁,Gitees是要花钱的。所以Gitee对仓库内容进行限制,图床外链类内容不支持开源,且对访问仓库中的图片添加了防盗链。

防盗链原理:防盗链基于HTTP协议支持的Referer机制,通过Referer跟踪来源,对来源进行识别和判断是否是目标网站而对图片替换为禁止标志的图片。

复现方法:仓库由私有变为公共。一开始可能可以开源,但过一段时间仓库就会变为私有并显示不可开源。且第三方编辑器(typora等)无法加载图片。

三、阿里云OSS使用、PicGo配置部署

软件准备:

Typora 1.4.8:https://download.typoraio.cn/windows/typora-setup-x64.exe

PicGo 2.3.0 正式版:https://github.com/Molunerfinn/PicGo/releases/download/v2.3.0/PicGo-Setup-2.3.0-x64.exe

首先搭建图床,需要有自己的存储空间。以阿里云平台为例。

1.【登录阿里云】->搜索OSS->【立即购买】。有免费送半年OSS体验的活动,新手尝鲜可以考虑。OSS分为按量收费和包月包年套餐。如果博客运营和其他平台技术文,考虑包年套餐。访问量不大,考虑按量收费。

2.选择基本配置即可,后续可以升级套餐

202210270050780

2.购买成功后,【控制台】->搜索对象存储OSS,选择开通OSS。

3.进入对象存储OSS后,【Bucket列表】->【新建Bucket】->填写bucket名称,地域自选,将读写权限选为公共读,其他默认即可。(需要可读才能显示图片,这个可以理解吧)

image-20221027010754250

4.创建后进入概览,注意地域节点,后续需要用到。

image-20221027011237804

5.对bucket进行基本的配置。【文件管理】->【文件列表】,可以手动上传图片文件夹,或新建目录管理。同样需要选择公共读权限。这里新建一个images/为例,作为图片存放目录。

image-20221027011707888

6.查看【权限控制】->【读写权限】 Bucket ACL是否为公共读,私有图片可以上传,但不能被加载。

7.【权限控制】->【授权策略】。这里的意思就是授权可以管理使用这个空间的用户,且用户可以有什么权限。所以首先需要新建一个用户。点击头像->访问控制->身份管理->用户,新建用户,选择Open API调用访问,其他自定义填写。创建用户后会有KeyID和KeySecret,这个需要保存起来,后续需要使用。

1626258477

创建新用户

8.在【访问控制】的身份管理->用户->添加权限中,选择【整个云账号】,AliyunOSSFullAccess,赋予用户权限

用户添加权限

9.权限控制】->【授权策略】中选择新增权限,选择子账号,授权只读,访问方式为HTTPS,设置授权用户为新增的用户。到此基本设置完成,还有其他的设置可自行探索,如添加防盗链,跨域,更改域名等。

image-20221027015045835

其次,配置好存储空间后,需要工具辅助自动上传图片。这里推荐Typora+PicGo

1.安装完软件后,打开PicGo【图床设置】-》【阿里云OSS】填写配置。KeyID和KeySecret可以使用创建新用户时的配置,也可以进入【头像】-》【AccessKey管理】选择创建AccessKey的配置,这里好处是密钥可查看,但安全性有风险。存储空间为Bucket名称存储区域为【地域节点】,忘记请查看上文,存储路径为新建的目录名。剩余可不填。确认后最好设置为默认图床

image-20221027021121475

最后,打开Typora,进入【偏好设置】,进行图像设置。点击验证图片上传,如果失败,可以查看日志报错或检查阿里云OSS配置是否正确,软件版本等。

1626258477

四. 超详细的Gitee搭建图床步骤(已弃用)

  1. 新建gitee仓库,配置好文件结构,注意仓库不要设置成私有,应该为公共,可以在仓库管理中更改16262547831626260027

  2. 进入个人设置->安全设置->私人令牌,新生成一个图床专用 token,复制1626258943

  3. 下载PicGo,安装过程很简单,进入后插件设置,安装gitee插件

  4. 配置PicGo,将token填入,个人空间名、仓库名参照仓库管理中的名称,设置完后记得设置为默认,如图

  5. 如果是以gitee为图床仓库,需要先进入【插件设置】搜索gitee并安装。安装完成后重新打开软件

    1626259935

    1626260887

  6. 在typora的图像中配置图片自动上传,并配置验证是否上传成功,然后自己试一试上传就行了16262584771626258451

五、踩坑记录

PicGo/Typora上传成功但无法加载图片

错误信息:上传图片到阿里云成功,但Typora不显示图片。直接访问图片地址,显示报错: You have no right to access this object because of bucket acl。

分析:

上传图片成功了,说明AccessKey 和 AccessKeySecret 正确。由错误信息可以知道,是在bucket acl中没有相应的权限。即OSS的权限没有设置正确。

解决方法:参考上文第三点中的6、7、8、9小点设置。重新启动软件后上传,即可解决。

Typora上传图片后链接乱码

https%3A%2F%2Fmarkdown-lwk.oss-cn-guangzhou.aliyuncs.com%2Fimages%2F202210260840871.png。虽然变成了乱码,但图片还是上传成功了。

解决方法:卸载beta版本,安装正式版或避免最新beta版本。

  1. 可以开启PicGo的图片重命名设置。位置在【PicGo设置】->【时间戳命名】开启即可,这样可以避免名字中有特殊符号,空格等影响,也避免重复上传。缺点是设置自动上传容易重复上传,因为时间戳图片名永远不重复。可以考虑用Win10 的win+shift+S截图复制替代。

  2. 如果PicGo版本是2.3.1-beta.7或其他存在beta的版本,则是测试版本。应该卸载并换为正式版本,目前最新版本为[2.3.0正式版]【2022.10.26】,正式版下载地址:https://github.com/Molunerfinn/PicGo/releases/download/v2.3.0/PicGo-Setup-2.3.0-x64.exe

PicGo发布者也明确指出:beta不是正式版,可以尝鲜新功能,但是并不会保证稳定性。

PicGo提示400错误信息上传失败

是因为你的仓库中已经存在了 与你想要上传的图片 同名称的图片,为防止冲突而提示 400 上传失败。不同版本的PicGo情况会不同。

参考链接:

阿里云OSS PicGo 配置图床教程 超详细 - 知乎 (zhihu.com)
阿里云OSS上传报错: You have no right to access this object because of bucket acl_薛定谔的雄猫的博客-CSDN博客
picgo/typora图床配置问题汇总:你可能犯的都在这里_是谢添啊的博客-CSDN博客

0

评论区