简介
PicGo: 一个用于快速上传图片并获取图片 URL 链接的工具,可以直接使用命令行上传,也可以用 GUI 上传,使用和二次开发都很方便
在上期 S3 图床 中我们提到了 PicGO,这里我们简单介绍一下如何配置 PicGO 上传图片到 S3。
PicGO 设置
下载运行
GitHub 里面直接找到最新 release 的稳定版本,下载安装即可。
如果你是比较新的 macOS,可能会遇到 “已损坏,无法打开” 的问题,可以参考之前的博客
正常安装成功后,通过命令行启动,或者直接 command + space
聚焦搜索启动:
插件安装
打开主界面,插件设置中搜索amazon s3 uploader
,安装相关插件
图床设置
图床设置 ➡️ Amazon S3
有几个要注意到地方:
- 应用密钥 ID:需要在 AWS IAM 中创建一个账户,并为该账户创建访问密钥,该密钥的 ID(即 AK/SK 中的 AK) 填写到这里;
- 应用密钥:刚刚创建的密钥本体(即 AK/SK 中的 SK)填写到这里;
- 桶:AWS S3 中创建的 bucket,注意这里填写的是 bucket name,不是 bucket arn;
- 自定义域名:最后会生成的图片域名,和图片上传位置没有直接关系,一般填自己的 CDN 即可
注意:
- 应用密钥(SK)不要暴露给别人!
- 应用密钥(SK)不要暴露给别人!
- 应用密钥(SK)不要暴露给别人!
重要的话说三遍(不是)
AK/SK 密钥对是第三方程序调用 AWS 接口的常见凭据,而且失效时间难以控制,一般都是长期有效,所以一旦泄漏可能会直接导致大门敞开(x)
SK 一般要配合 AK 一起使用,但 AK 有固定的格式,如果 SK 泄漏,攻击者可以通过构造大量 AK 的方式去碰撞密钥对(如果 AK/SK 一起泄漏就更离谱了…)
AWS IAM 设置
刚刚提到了 AK / SK,如果你还没有创建的话,可以参考一下我的权限分配。
登录 console
命令行的教学以后再来写,这里先教大家怎么用网页来操作(x)
直接搜索栏搜索 IAM
创建 user
访问管理 ➡️ 用户 ➡️ 添加用户
创建的时候可以什么权限都不给,我们后面再来详细设置。
创建内联策略
找到刚刚创建的用户 ➡️ 权限 ➡️ 添加权限 ➡️ 创建内联策略
不熟悉的小伙伴可以通过可视化编辑器搜索 “S3” 相关写权限:
图片上传只需 put 相关权限,但是方便调试,我给了 list 部分权限。
同时可以通过“资源”模块限制用户(或者说是他的 AK/SK)可以访问资源范围,比如我限制只允许访问我图床的 bucket 中特定目录,其他资源不可访问:
总体编辑一下大概如上图所示,会生成对应的权限 JSON,如果是对 AWS IAM 比较熟悉的小伙伴,可以直接编写 JSON:
1 | { |
这里严格限制密钥权限,满足最小特权原则,即使密钥泄漏了也不能对我们 AWS 账号其他的资源产生影响。
创建访问密钥
为刚刚的用户创建访问密钥:安全凭证 ➡️ 访问密钥 ➡️ 创建访问密钥
密钥和用户强绑定,访问密钥的权限为刚刚设置的用户的权限
然后把密钥信息填写到 PicGO 里面即可:
测试连接
此时随便上传一张照片看看:
在存储桶中已经找到该图片:此时说明连接成功
Typora 设置
每次写博客都要手动传图肯定是不行的,非常累(懒癌晚期)
这里我们用 Typora 自带的传图功能:Typora ➡️ 设置 ➡️ 图像 ➡️ 插图片时…
验证一下:
注意这个每一次验证都会上传一次 logo(两张小图片),点多了的话记得去 bucket 里面删掉……bucket 里面放垃圾也是要收费的(x)