随机图片镜像更新
杂谈
前几个月一直忙于保研相关的事情,这几天终于告一段落,由于天天打游戏太闲了,又开始捣鼓起随机图片了。
书接上回,我定了几个TODO,原本以为有生之年不会再更新了,没想到一两天就给我整完了。
镜像更新内容
首先镜像版本从v2更新到了v3,大家可以通过docker pull registry.cn-hangzhou.aliyuncs.com/oierlin/random-image:v3拉取我的新镜像。
目录架构
目前镜像中的文件如下:
/var/www/html/
├── 📄 index.php
├── 📄 img.txt
├── 📄 bg.php
├── 📄 bg.txt
├── 📄 bg_webp.php
└── 📄 bg_webp.txt
其中index.php读取img.txt中的内容,
bg.php读取bg.txt中的内容,
bg_webp.php读取bg_webp.txt中的内容。
为了适配同个网站刷新就能刷新随机图片的功能以及把随机图片使用在其他网站中的功能:
index.php中使用了<img>标签使用户查看图片可以保留在原来的网站。
bg.php和bg_webp.php中使用了header("Location:");,用于网页跳转。
对于上次TODO中的第一项,我已经把背景图片处理成webp格式并把网址放在bg_webg.txt中了。
之所以不在上次捣鼓的时候就把图片转换成webp,是因为上次没有找到好用的批量把图片转换成webp格式的网站或者软件,自己也懒得写代码。这次找到个比较方便的网站就转了。在此推荐一下ImagesTool
自定义图片目录
为了不需要每次更新图片目录的时候都需要更新镜像,新版本的镜像可以从环境变量中读取图片目录文件。只需要你把图片目录txt文件放在公网环境或者任何容器可以读取到的路径下(包括本地路径,不过注意可能需要将本地路径挂载到容器内),然后修改对应的环境变量就行了。
index.php文件读取IMG_SOURCE环境变量,
bg.php文件读取IMG_BG_SOURCE环境变量,
bg_webp.php文件读取IMG_BG_WEBP_SOURCE环境变量。
环境变量可以通过-e参数来配置,例如:
docker run -e "IMG_SOURCE=https://example.com/img.txt" -itd registry.cn-hangzhou.aliyuncs.com/oierlin/random-image:v3
图片存放服务方的选择
不知道是之前优惠过期还是其他原因,阿里云的oss消费变得有点高了。之前花了一段时间把阿里云oss里的文件都转成归档存储,只有博客的图片和随机图片才是标准存储。
虽然阿里云的oss我还在用,但也在寻找其他的一些出路。
github
首先是github。优点是完全免费,缺点是有点慢。我在github上创建了一个仓库https://github.com/oierlin/pixiv来存放这些图片。
如果有捣鼓的想法可以试着用cdn加速一下,不过我暂时就不捣鼓了,免费的cdn加速cloudflare需要有域名,虽然也有免费域名,但是有点麻烦。
ClawCloud Run
ClawCloud Run是一个和sealos Cloud类似的平台,可以在上面通过docker部署应用,他们也提供了数据库,对象存储等功能。下面放上个人体验下来的优劣对比,以供大家参考。
由于是对比的优缺点,一方的优点就是另一方的缺点,所以这里只以ClawCloud Run为主体进行对比。
ClawCloud Run
优点:
- 通过github注册的账号每月送5$额度,sealos不送。
缺点:
- 只有国外节点,访问也许相对会慢一点。
- 对象存储不提供网页的上传按钮,需要通过sdk(如python的boto3库)或其他方式来上传文件,而sealos可以全程在网页上操作。
真的要吐槽一下ClawCloud Run对象存储的网页,去看了下他们的文档,文档里甚至有截图他们的网页有上传按钮,我切换地区,重新开存储池等方法都用了就是没找到上传按钮,阿里云的Ossbrowser客户端和oss2库也和他们不兼容(虽然这也不是他们都问题)。捣鼓了好久最后在deepseek的帮助下找到boto3库,他们文档也没说用什么库可以访问他们的对象存储,真难受啊。
服务部署服务方的选择
基于ClawCloud Run每月会送额度,最终还是选择部署在他们上面,sealos Cloud的容器我也还没关,等余额用完了我应该就会关了。

浙公网安备 33010602011771号