Typora使用iPic作为图床工具

771 阅读4分钟

1. 工具介绍

Typora

Typora 是一款「所见即所得」的Markdown编辑工具

iPic

iPic 是一款图床神器,不论屏幕截图、还是复制图片,都可以自动上传、保存 Markdown 格式的链接,直接粘贴插入

阿里云对象存储OSS

阿里云对象存储OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,提供99.9999999999%(12个9)的数据持久性,99.995%的数据可用性。多种存储类型供选择,全面优化存储成本。

2. 为什么需要图床

​ 为了愉快地写 Markdown笔记、博客、文档,一篇内容复制粘贴发表全平台,不用再去考虑图片的在本地存储路径的问题。图床,也就是专门提供存储图片的地方,我们只要通过图床提供的 API 接口,将图片上传,就可以通过外链访问。根本不用操心图片是怎么存的,硬盘空间不够,硬盘坏掉,访问速度比较慢等问题,这些图床都会帮我们搞定。图床会用各种技术帮我们做图片相关的优化和服务,比如多机互备、CDN 加速、图片处理、图片鉴黄、文本识别等等。当然,图床也是有缺点的,当所有人都把图片存在同一个图床上,万一有一天图床真挂了,那所有图片就都无法访问了(因此需要选择一个靠谱的图床工具)。

3. 操作步骤

3.1 下载Typora

官网下载即可

3.2 下载iPic

Mac用户可在Mac App Store中下载

3.3 开通并设置阿里云OSS服务

  1. 在阿里云网站中开通阿里云对象存储OSS服务,选择对应套餐

  1. 在控制台中选择OSS控制台 -> Bucket列表 -> 创建Bucket,创建属于自己的Bucket来存放图片。在这里注意,创建Bucket时「读写权限」要选择「公共读写」(本来为了安全起见,本人选择/官方建议都是「私有」,但经实践,选择私有无法在Typora中正常使用阿里云OSS提供的API)

  2. 「RAM访问控制」-> 「用户」 -> 「创建用户」

    创建一个只能访问Bucket权限的子用户给图床工具使用,创建iPic专属用户来对OSS进行操作,注意「访问方式」要将「控制台访问」和「编程访问」全部勾选,这样才可以生成后续子用户专属「AccessKey ID」和 「AccessKey Secret」(不使用主账号/主用户的密钥的原因:这一密钥具有所有权限,最好不要给第三方软件使用),将上述两个密钥及时记录在其他地方(页面一关闭,密钥会无法找回

    1. 「添加权限」

      为刚创建的iPic子用户添加权限,使其仅能访问OSS:在选择权限的输入框中输入「OSS」,选择如图所示的权限策略,点击确定。

    2. 「创建的Bucket」 -> 「权限管理」 -> 「Bucket授权策略」-> 「策略语法」 -> 「编辑」

      将如下代码粘贴至文本框,点击保存(==其中Principal和Resource字段需要替换成自己对应的UID/账号ID/bucket名称==

{
    "Version": "1",
    "Statement": [{
        "Effect": "Allow",
        "Action": [
            "oss:GetObject",
            "oss:PutObject",
            "oss:GetObjectAcl",
            "oss:PutObjectAcl",
            "oss:ListObjects",
            "oss:AbortMultipartUpload",
            "oss:ListParts",
            "oss:RestoreObject",
            "oss:GetVodPlaylist",
            "oss:PostVodPlaylist",
            "oss:PublishRtmpStream",
            "oss:ListObjectVersions",
            "oss:GetObjectVersion",
            "oss:GetObjectVersionAcl",
            "oss:RestoreObjectVersion"
        ],
        "Principal": [
            "子用户UID"
        ],
        "Resource": [
            "acs:oss:*:账号ID:bucket名称/*"
        ]
    }, {
        "Effect": "Allow",
        "Action": [
            "oss:ListObjects"
        ],
        "Principal": [
            "子用户UID"
        ],
        "Resource": [
            "acs:oss:*:账号ID:bucket名称"
        ],
        "Condition": {
            "StringLike": {
                "oss:Prefix": [
                    "*"
                ]
            }
        }
    }]
}

在图形设置中看到如下界面,说明设置成功

3.4 设置iPic

打开iPic的偏好设置 -> 选择「图床」->选择「+」号 -> 「阿里云OSS」,设置对应的字段。Bucket为Bucket名称,Access Key 和 Secret Key分别对应刚才创建的子用户的AccessKey ID和 AccessKey Secret,网络前缀自行设置。后点击验证,显示为「通过」则设置成功。

如果想上传图片后直接在Typora中粘贴出Markdown格式,则需要点击状态栏的iPic图标,勾选「Markdown」,如果不勾选,则上传图片后返回图片URL。

3.5 设置Typora

在Typora的偏好设置中点击「图像」,设置为如下图所示,点击「验证图片上传选项」进行验证。

到此,Typora和iPic的联动前期准备工作大功告成。

4. 使用方法

截图工具方面,我选用Xnip(主要是因为Xnip截图后有标注功能,还可以直接复制到粘贴板)。

  1. command + shift + x 截图

  2. command + shift + u 上传

    成功上传至OSS,并得到Markdown格式的图片链接,如下所示

    ![](https://bucket名称.oss-cn-chengdu.aliyuncs.com/文件名.png)

  3. command + v 粘贴至Typora的Markdown文档中,图片实时显示

参考资料

为什么要使用图床?七牛云+PicGo+Snipaste=畅享丝滑