# 快速上传图片到云图床
# 目标
- 复制图片到剪切板后,配合 Alfred 使用快捷键上传至又拍云(支持大部分图床,可自行配置)
- 添加右键上传
# 效果
图片复制到剪切板后,按快捷键上传,成功后会将 md 格式图片复制到剪切板,并输出到光标处。
用 QQ 制作的简单 gif 图片,正常右上角是有上传中、上传成功提示的
# 环境
- Apple M1 macOS Ventura 13.1
- php7.4
- Alfred 4.6.2
- pngpaste 0.2.3
# 相关工具说明
# PicUploader
本文的主要实现是依赖该开源工具,地址 (opens new window),是目前比较不错的实现。 也可忽略本文直接参照该库去自行实现,本文是记录实现步骤和遇到的问题。
# Alfred
Alfred 是 Mac 上的一个效率工具,它最经典的就是类似 Mac 自带的“聚焦搜索”的功能,它的大概功能可自行搜索关键字:效率神器 Alfred。 Alfred 体积非常小,不到 8M,占用内存也非常小。Alfred 本身免费,但它的“Powerpack”(可理解为“增强功能包”)是收费的(39 英镑 ≈341 元终身授权),当然你也可以用 PJ 版(可以去找),但 PJ 版一般跟不上系统版本,如果你喜欢用最新系统,可能有时候用不了。
# pngpaste
快捷键上传,其实就是通过按快捷键调用命令,获取到系统剪贴板中的图片并把它保存成图片文件,然后上传该图片文件。目前最方便的就是通过 pngpaste 来获取,所以我们需要安装 pngpaste。 使用 brew 安装 pngpaste:
brew install pngpaste
ok
# 快捷键上传实现步骤
# 1. 下载 PicUploader (opens new window)
将仓库克隆到本地
# 2. 配置
找到 config
文件下的 config.php
,另复制为 config-local.php
,然后在config-local.php
中填写配置。
我使用的是又拍云,已经申请过云储存服务,所以这里的工作是找到接入又拍云需要的参数:
serviceName、operator、password、domain
# serviceName、domain
# operator、password
进入上图所示的服务内,存储管理 - 操作员授权 - 点击授权 - 新建授权操作员
# 3. 安装 Alfred workflow
双击文件,安装 alfredworkflow
导入后可看到三个图标:
双击第一个 HotKey 图标可设置快捷键;
双击第二个 Run Script 图标设置快捷键要运行的命令,Language 选择 /bin/bash→with input argv→Sequentially
,script 填写(注意路径要换成你自己的):
/usr/local/bin/php /path/to/personal/PicUploader/index.php --type=alfred
ok
双击第三个 clipboard 图标,type 选择 Plain Text,框里填 {query}
,并勾选Automatically paste to front most app
。
使用: 把鼠标光标置于任意编辑器界面上,截图 → 复制到剪贴板 → 按快捷键 → 右上角提示上传中 → 右上角提示上传完成(此时返回的链接已经自动粘贴到编辑器中)!
# 添加右键上传
打开自动操作(Automator)
,打开它,创建一个服务,输入 shell
搜索 → 搜索出 运行 Shell 脚本
→ 把它拖到右侧:
工作流程收到当前:文件或文件夹 位于 访达.app
- 输入为:灰色不可选,也不需要选
- 图像:默认就行
- 颜色:默认就行
运行 Shell 脚本:
- Shell:
/bin/bash
- 传递输入: 作为自变量
- 命令(注意把这里的路径改成你电脑上的路径):
export LC_CTYPE="zh_CN.UTF-8" /usr/bin/php /path/to/PicUploader/index.php "$@" | pbcopy
ok
2
最后 cmd+s
保存 → 命名成 Upload with PicUploader
就完成了,可以关掉 自动操作
APP 了,然去 Finder
随便右击一个文件,是不是有个菜单叫 Upload with PicUploader
? 点击它就可以上传该文件了。