文章作者: Leopold Fitz
文章链接: https://www.leofitz7.com/posts/74152.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Leopold’s Blog!
Learn_Tinify_Image_Action
学习如何使用TinePNG搭配工作流,实现自动压缩上传的图片。
Learn how to use TinePNG with workflow to automatically compress uploaded images.
项目地址:https://github.com/leopold7/Learn_Tinify_Image_Action
步骤
申请 Tinify API key
申请地址:https://tinypng.com/developers
在你的邮箱中点击链接登录后,选择 Add API key
,即可生成。
请记住此token
申请 GitHub Token
在GItHub中点击头像,选择 Settings
选择Developer settings
选择 Personal access tokens
-> Generate new token
按照下图勾选即可
请记住此token
配置yaml
在GitHub项目中创建GitHub Action 所需的yaml配置文件,路径为 /.github/workflows/
,文件名为 main.yml
name: image
on:
push:
paths:
- 'static/**'
jobs:
compress:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
ref: ${{ github.head_ref }}
- uses: namoscato/action-tinify@v1
with:
api_key: ${{ secrets.API_KEY }}
github_token: ${{ secrets.MYGITHUB_TOKEN }}
解释:
'static/**'
:声明了一旦在static
文件夹下发生了 push 操作就会触发这个事件${{ github.head_ref }}
:分支,GitHub默认环境变量${{ secrets.API_KEY }}
:Tinify API key,Tinify 密钥${{ secrets.MYGITHUB_TOKEN }}
:GitHub 密钥
其他变量详见:https://github.com/marketplace/actions/tinify-image-action
配置环境变量
在项目中选择Settings
-> Secrets
-> New repository secret
在Name
中输入 API_KEY
,在Value
中输入你申请的Tinify API key
再次添加,在Name
中输入 MYGITHUB_TOKEN
,在Value
中输入你申请的GitHub Token
最终结果如下
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VnclP5Yh-1640166161046)(https://cdn.jsdelivr.net/gh/leopold7/CDN2@main/static/images/begs/2021/12/20211222142700.png)]
测试
我们上传一张图片,原图大小为739.2 kB
在Action
中可以观察到工作流
此处有详细的工作流执行步骤,此处不多解释。
再次查看文件大小,已压缩至585KB
在Tinify中能够看到已消耗配额1张
注意事项与优化
-
Tinify每月500张图片免费压缩,如果需求量大建议支持下Tinify。
-
如果想baipiao的话(=,= ),可以优化工作流(申请多个key,负载均衡)。
-
如果我们不想覆盖压缩,可以在压缩前执行备份操作。
文章作者: Leopold Fitz
文章链接: https://www.leofitz7.com/posts/74152.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Leopold’s Blog!