我需要一个图像储存服务,完成登录网页、通过他们的界面上传等工作是乏味的。用一个简单的命令行脚本来做不是更好吗?确实,而且很容易。
至于服务,我从不喜欢 Imgur,虽然我喜欢 postimages.cc,但它们没有 API。然而,imgbb.com 做到了,并且在大约 15 分钟内我有了一个脚本,允许我上传文件并获取 URL,而无需任何 Web 浏览器交互。
我的要求是该脚本必须在 Linux 和 macOS 上都可以运行,并且不需要任何第三方模块,因为我不想让它们在不同的操作系统上保持更新。有一些不错的 Python 脚本,但它们需要 requests 模块(这很棒,但是是第三方的)。同样,虽然正确的做法是使用 jq 之类的内容解析 JSON 响应,但这是第三方依赖项,因此我将使用正则表达式对其进行处理。
下面的代码显示了它是多么容易。
首先,在 imgbb.com 上创建一个帐户,然后使用它登录。然后访问api.imgbb.com并单击“获取 API 密钥”。
这是我正在使用的脚本,它是从他们网站上的示例中修改而来的:
#!/bin/bash # 将此更改为您的实际 API KEY API_KEY=123451234512345 RESPONSE=$(curl -s --location \ --request POST "https://api.imgbb.com/1/upload?key=${API_KEY}" \ --form "image=@$1") URL=$(echo $RESPONSE | sed 's/^.*"display_url":"//' | sed 's/",.*$//') URL=$ (echo $URL | sed 's#\\/#/#g') echo $URL
这个脚本所需要的只是 bash、curl 和 sed,它们应该存在于任何现代类 Unix 系统上。
这是输出:
$ ~/Dropbox/bin/imgbb_upload.sh ~/Desktop/leb_logo.png 20231213/48007.png
该 URL 现在适合在任何论坛上使用。