@scomper

我的两种图床方案

2018.07.02

在网上分享图片或者写博客的群体对「图床」应该都不陌生,图床一般是指储存图片的服务器,我们上传图片后会获得 URL 链接。大部分图床都提供了免费服务,不过会在流量、图片大小上作出一些限制。由于流量、运营成本、维护等多方面的原因,小的厂商很难长时间维持免费图床的运营,选择有一定实力和相关服务背景的运营商图床会存活的更久一些。

大部分图床服务的流程是「打开 web 页面──拖拽上传图片──获得 URL 地址」这么一个过程,使用起来并不是很便捷,是否能直接在桌面完成操作呢?答案是肯定的,图床服务商一般都提供了 API 接口供第三方调用,于是也应运而生了很多支持这些接口的应用工具。

菜单栏里的图床工具

macOS 上以前比较喜欢用 Dropzone 这款应用,它内置了 imgur 这个图床的接口,作为一款常驻菜单栏的应用,它会响应文件拖拽并弹出窗口,操作便捷。然而系统更新到 macOS Mojave 以后,发现 Dropzone 的 imgur 扩展不好用了,逼的自己不得不再找一个类似的图片上传「帮手」。

经过一番搜索,找到一款 GitHub 开源应用 PicGo,PicGo 支持微博图床、七牛图床、腾讯云 COS、又拍云、GitHub 图床和 SM.MS 图床。设置和使用都很简单,安装上以后,第一时间配置好了 GitHub 和 SM.MS 这两个自己比较喜欢的图床服务。

PicGo 支持图片的批量上传,只需要拖拽图片到它的菜单栏图标上即可。菜单栏展开的下拉菜单里会显示最近上传的图片,点击可以重新获取链接。它的详细设置(菜单栏图标上右键)中还包含:默认图床、时间戳重命名、链接格式(MarkDown、HTML、URL、UBB)等实用设置项。

利用网上的资源简单整理了一份目前流行图床的表格,不准确的地方欢迎指正。

项目 批量上传 尺寸 流量 保存时间
微博图床 支持 不限 不限 永久
imgur 支持 < 20 MB < 50 张/小时 > 4,000 次(一周内)
Tinypic 不支持 < 1024×768 不限 三个月(无人浏览即删除)
sm.ms 支持 < 5MB 10 张/次 永久
七牛 支持 不限(需注册) 10G/月 帐号有效期
又拍网 支持 < 10MB(需注册) 100MB/月 帐号有效期
Cloudinary 支持 < 10 MB(需注册) < 20 GB(月) 帐号有效期
GitHub 支持 不限 不限 永久

右键 Bitcron 图床

当初将博客转到 Bitcron 的一个考虑因素就是博客内容和 Dropbox 的同步,除了网站的配置信息,博客文章会以 .md 的格式保存在文件夹当中,图片也都集中保存在指定目录。这给了人一种安全感,因为文章依旧是 MarkDown 的原始形态,即便博客平台出问题,文章也不会丢失。

Bitcron 支持用户创建多个网站,于是想到利用 Bitcron 和 Dropbox 的同步特性,单独建一个自己的图床。方便分享单独的图片,而且在本地操作 Dropbox 文件夹中的内容即可。图示中可以看到 Bitcron 管理网站的逻辑,每个网站都有一个以域名为命名的文件夹,为此我单独添加了一个域名 img.scomper.me 的网站作为图床,同时设置将云同步设置设为双向(从云端同步和同步到云端都开启)。如此一来,在 Dropbox 的文件夹 img.scomper.me 中的修改能即时的反映到网站上。

Mac 本地只要把图片复制到 Dropbox 目录下的 img.scomper.me 文件夹当中,通过 Dropbox 的同步就会体现在 img.scomper.me 这个网站上。

本地又该如何快速的获取 URL 链接呢?这里就需要用到系统自带的机器人「自动操作」(应用程序 - 实用工具)。

打开「自动操作」创建一个 Quick Action,这样可以在鼠标右键菜单「快速操作」里看到你创建的动作。

这里我创建的两个 Action:

  • Get URL,在图片上右键获取 URL 链接,主要用在对 Dropbox 中 Bitcron 同步的网站内容中直接获取图片的 URL,例如博客 scomper.bitcron.com 和 img.scomper.me 中的图片链接。只对 Bitcron 本地的存储图片有效,其他位置会提示无法获取 URL 地址。
  • Copy URL,本地 Bitcron 文件夹之外的其他地方,右键直接复制图片拷贝到 Dropbox 指定文件夹并获取 URL 链接。

两个 Action 其实差不多,Copy URL 这个动作多了文件名重命名(默认系统截图的命名包含空格,会导致「从文本中提取 URL 失败」)和复制图片到指定目录的动作。用到的变量有三个:FilePath 保存「从文本中提取的 URL 地址」,Prefix 变量设置了一个默认文本 http://,最后用 HTTP( = FilePath+Prefix )变量组合成网址。

Finder 选中一个文件跑(Run)一下测试,例如选择 img.somper.me 文件夹中的一张图,「从文本中提取数据」会获得 img.scomper.me/screenshots/***.png 这样一个地址,将其保存到 FilePath 变量,最后组合成 HTTP 的网址,传给通知组件和剪贴板。

调试没有问题保存并命名两个 Action,这样在鼠标右键中就能找到它们。为了让通知提示更聪明,Get URL 这个 Action 中还可以给 FilePath 这个变量添加一个默认值(获取 URL 失败!)。

  • 需要注意的是,如果下次编辑中 Run 过这个 Action,保存的可能是最后一个测试的路径,需要重新赋值并保存退出。
  • 另一个问题就是,每次编辑 Action 默认的动作的右键菜单图标都会还原,需要重新设置。
  • 如果发现剪贴板中粘贴出来的是重复的文本串,检查「获取变量的值」选项,勾选「忽略此操作的输入」。

macOS 10.14 之前的版本,自动操作的新建菜单里没有「快速操作」这个选项,可以创建为「服务」,从右键的服务菜单里选择,最后,系统偏好设置的键盘设置可以为自己创建的服务项添加快捷键。

Comments
Write a Comment