通过Typora + PicGo + 阿里云对象存储(OSS)实现图床
在 Typora 中使用 OSS(对象存储服务)作为图床,可以实现图片的自动上传和存储,方便在 Markdown 文档中插入图片。
Typora:下载并安装 Typora 编辑器,它是一款支持 Markdown 编辑的工具。
PicGo:下载并安装 PicGo 软件,它是一个用于管理图床的工具。
对象存储(OSS):一种云存储服务,用于存储非结构化数据(如图片、视频、文档等),常见的云服务提供商如阿里云、腾讯云、华为云等都提供 OSS 服务。
1 准备工作
1.1 阿里云对象存储 OSS配置
创建oss存储空间bucket
开通阿里云对象存储功能
登录阿里云 OSS 控制台,点击“创建存储空间”。
在弹出的对话框中,填写存储空间名称(需全局唯一)、地域(建议选择离自己近的地域以提高访问速度)、读写权限(选择“公共读”,这样图片才能被外部访问)等信息,然后点击“确定”。
关闭阻止公共访问,默认情况是打开状态,上一步骤创建完成,点击进入对应的bucket,左侧栏目看到权限控制-》阻止公共访问,操作之后如下图。
设置图片读写权限,点击读写权限标签栏,设置公共读。
获取AccessKey
用户名密码登陆阿里云
主界面右侧,鼠标点击看到AccessKey这一项,点击如图
创建Accesskey和子用户Accesskey,在弹出的安全验证窗口中,选择一个方式来通过安全验证
创建Accesskey完成后会下载一个csv文件,里面有AccessKey ID 和 AccessKey Secret ,一定要保存好,不要泄露。
1.2 PicGo配置
下载:https://molunerfinn.com/PicGo/
安装:下载exe文件,双击,下一步,安装
配置
打开PicGo软件,配置阿里云OOS,AccessKeyId,AccessKeySecret,Bucket,存储区域
上面生成的AccessKey填写再设定KeyId,KeySecret
bucket名称在这里
设定存储区域 oss-cn-beijing
1.3 Typora配置
下载 https://www.onlinedown.net/soft/10047520.html
安装 点击下一步
配置 PicGo
2 使用流程
2.1 截图到剪切板
2.2 复制到md文档
3 常见问题和解决
3.1 创建asesskey
登录阿里云控制台:打开阿里云官网(https://www.aliyun.com/),使用你的账号登录阿里云控制台。
进入 Access Key 管理页面:登录后,将鼠标悬停在页面右上角的账号名称上,在下拉菜单中选择“AccessKey 管理”。
创建 Access Key
:
- 如果你是第一次创建
Access Key
,可以直接点击“创建 Access Key”按钮。 - 若之前创建过,需要按照系统提示进行身份验证(如短信验证码验证),验证通过后才能创建新的
Access Key
。
- 如果你是第一次创建
保存 Access Key 信息:创建成功后,系统会弹出一个窗口显示
AccessKey ID
和AccessKey Secret
,请务必将这些信息妥善保存,因为AccessKey Secret
只会显示一次,一旦关闭窗口就无法再次查看,若不慎丢失,只能重新创建。
3.2 You have no right to access this object because of bucket acl
根据错误信息提示“You have no right to access this object because of bucket acl”,这表明您尝试访问的对象由于存储桶(Bucket)的访问控制列表(ACL)配置,导致您没有权限访问该对象。以下是可能的原因和解决方法
可能原因:
- 存储桶的ACL权限限制
存储桶的所有者可能设置了严格的ACL权限,仅允许特定用户或账户访问。 - 对象权限未正确配置
即使存储桶的ACL允许访问,对象本身的权限可能被设置为私有,导致您无法访问。 - IAM权限不足
如果您使用的是云服务(如AWS S3、阿里云OSS等),您的IAM角色或用户可能没有足够的权限访问该存储桶或对象。 - 跨域访问限制
如果您通过网页或其他跨域方式访问,存储桶可能未配置正确的CORS(跨域资源共享)策略。
解决方法:
- 检查存储桶的ACL设置
- 登录到云服务控制台(如AWS S3、阿里云OSS等)。
- 找到目标存储桶,检查其ACL设置,确保您的账户或用户组有访问权限。
- 如果存储桶是私有的,可以尝试将其设置为公开读取(public-read),或者添加您的账户到允许访问列表中。
- 检查对象的权限
- 确保目标对象的权限设置为允许访问。
- 如果是私有对象,您需要获取对象的签名URL或临时访问令牌。
- 检查IAM权限
- 如果您使用的是IAM角色或用户,确保其策略中包含访问该存储桶和对象的权限。例如,在AWS S3中,策略需要包含
s3:GetObject
和s3:ListBucket
权限。
- 如果您使用的是IAM角色或用户,确保其策略中包含访问该存储桶和对象的权限。例如,在AWS S3中,策略需要包含
- 配置CORS策略(如果需要)
- 如果通过网页访问,确保存储桶的CORS策略允许您的域名访问。
- 联系存储桶所有者
- 如果您无法修改存储桶或对象的权限,请联系存储桶的所有者,请求其授予您访问权限。
4 优化
4.1. 优化 OSS 配置
通过优化 OSS 的设置,可以提高图片访问速度和安全性。
1 开启 OSS 的 CDN 加速
- 进入阿里云 OSS 控制台,选择你的 Bucket。
- 在“域名管理”中,绑定自定义域名,并开启 CDN 加速。
- 在 PicGo 中,将“自定义域名”设置为 CDN 加速的域名。
2 设置 OSS 的权限
- 在 OSS 控制台中,进入 Bucket 的“权限管理”。
- 将 Bucket 的读写权限设置为 私有,避免图片被恶意访问。
- 在 PicGo 中,确保使用 AccessKey 上传图片。
3 定期清理 OSS 图片
- 在 OSS 控制台中,使用“生命周期管理”功能,设置自动删除过期图片。
- 定期手动清理不再使用的图片,节省存储空间。
4.2 安全优化
1 使用子用户 AccessKey
- 在阿里云 RAM 控制台中,创建一个子用户,并授予该用户 OSS 的读写权限。
- 使用子用户的 AccessKey 配置 PicGo,避免使用主账号的 AccessKey。
2 定期更换 AccessKey
- 定期更换 AccessKey,避免因泄露导致的安全问题。
- 更换 AccessKey 后,记得更新 PicGo 中的配置。
3 开启 OSS 的日志功能
- 在 OSS 控制台中,开启日志功能,记录所有访问和操作日志,方便排查问题。
5. 其他优化建议
- 使用 Markdown 图片语法:在 Typora 中,使用 语法插入图片,确保图片链接可移植。
- 备份 OSS 图片:定期将 OSS 中的图片备份到本地或其他存储服务,防止数据丢失。
- 优化图片大小:在上传前,使用工具压缩图片,减少存储空间和加载时间。