MoreRSS

site iconYasking | 东东修改

博主毕业后北漂两三年,2017 年初回到哈尔滨从事软件开发,2021 年初又回到北京。
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

Yasking | 东东的 RSS 预览

使用 EdgeOne CDN 加速 Immich 地图加载速度

2026-08-19 13:24:00

前段时间领取 EdgeOne 的免费版使用,其安全加速流量和安全加速请求均显示 ‘不限量’,堪称国内的小赛博罗汉。

本篇记录 Immich 地图瓦片和 Style JSON 文件的配置过程,主要有两项:

  1. 使用 EdgeOne CDN 加速 Immich Tiles 地图瓦片数据;
  2. 使用 EdgeOne Functions 替换 Style JSON 文件内的资源引用地址;

配置 CDN

图 01

创建两个子域名,对应关系如下:

immich-tiles.yasking.org  => tiles.immich.cloud
immich-static.yasking.org => static.immich.cloud

P.S. immich-tilesimmich-static 为自定义的子域名,另外手动启用 HTTPS(自动申领或上传自有证书)

访问 Immich 地图配置页面

Console -> Administrator -> Settings -> Map & GPS Settings

图 02

将 URL 修改为 CDN 绑定的域名,保留 Path(如上图所示)。

配置 EdgeOne Functions

如果你打开上方路径的 .json 可以看到其内部仍是官方资源硬编码的资源地址

图 03

可以借助 EdgeOne 边缘函数对 Host 进行替换,新建函数,内容如下:

async function handleRequest(request) {
  const url = new URL(request.url);

  // 仅允许代理 Immich 的 style JSON
  if (
    url.pathname !== "/v1/style/light.json" &&
    url.pathname !== "/v1/style/dark.json" &&
    url.pathname !== "/v1.json"
  ) {
    return new Response("Not Found", {
      status: 404,
    });
  }

  const upstreamUrl =
    `https://tiles.immich.cloud${url.pathname}${url.search}`;

  const response = await fetch(upstreamUrl);

  if (!response.ok) {
    return response;
  }

  let text = await response.text();

  text = text
    .replaceAll(
      "https://tiles.immich.cloud",
      "https://immich-tiles.yasking.org"
    )
    .replaceAll(
      "https://static.immich.cloud",
      "https://immich-static.yasking.org"
    );

  const headers = new Headers(response.headers);

  // Body 已经被修改,这些头可能失效
  headers.delete("content-length");
  headers.delete("content-encoding");
  headers.delete("etag");

  headers.set(
    "content-type",
    "application/json; charset=UTF-8"
  );

  headers.set(
    "cache-control",
    "public, max-age=3600"
  );

  return new Response(text, {
    status: response.status,
    headers,
  });
}

addEventListener("fetch", event => {
  event.respondWith(handleRequest(event.request));
});

而后在触发配置中添加触发条件:

图 04
HOST 等于 immich-tiles.yasking.org
并且 URL path 等于 /v1/style/light.json 或 /v1/style/dark.json

配置后继续调整 EdgeOne 的缓存时间(针对 mvt 后缀文件)

图 06

访问测试

待部署完成后访问 Immich Map 页面,可以看到请求已走自定义域名。

图 05

瓦片地图从 EdgeOne CDN 加载,速度从 1s+ 降低到 100 毫秒级别。

图 08

访问一会儿地图后回到 EdgeOne 控制台,可以看到请求数飙升,符合预期。

图 07

修复 macOS 迁移助手会导致 OrbStack 文件损坏的问题

2026-08-19 13:18:00

先修复文件所有者变 root 的问题。

sudo chown -R "$USER" ~/Library/Group\ Containers/HUAQ24HBR6.dev.orbstack/data

服务启动后如遇弹窗报错则继续,不要点击 Reset。

OrbStack data has been replaced with an empty file.

This is usually caused by Migration Assistant. To fix it, click "Reset" to delete your old data and start over.

这是因为迁移助手破坏了稀疏磁盘镜像的分区结构,先备份文件:

cp ~/Library/Group\ Containers/HUAQ24HBR6.dev.orbstack/data/data.img.raw ~/Desktop/data.img.raw.backup

执行命令(参考的这个 Issue: #2472

命令说明:8796093022208 = 8 TB,是 OrbStack 默认虚拟磁盘大小、不会立刻占满 8 TB 磁盘,只是恢复稀疏文件的 “表观大小”、迁移时末尾的 GPT 备份区可能被截断,扩回去后 OrbStack 有时能重新识别分区。

truncate -s 8796093022208 ~/Library/Group\ Containers/HUAQ24HBR6.dev.orbstack/data/data.img.raw

我执行后问题得到解决,镜像、容器均恢复正常,特此记录。

香港 Day2・赞美之泉演唱会

2026-08-15 14:06:00

第二天的天气也是阴的,听着外边儿淅沥沥的雨声和车压过路面的声音,也就没有早出去的心情,中午饿了就打算出去吃点儿东西。

香港土地资源有限,楼房总是高耸林立。

图 01

路过 711 便利店,看到之前去日本喝过的 ‘酸酸’,来上一瓶。

图 02

到达午餐目的地,名为牛奶冰室。‘冰室’ 早先是喝饮品的地方,类似国内的奶茶店,后来不断的发展(什么都卖),现在有些类似快餐馆的感觉。

图 03

他家的菠萝包在大众点评上看挺推荐,很香甜,内部是浓浓的芝士,烫烫的口感不错。

图 05

另点了冻鸳鸯、牛肉炒河、嫩鸡米线。冻鸳鸯有比较明显的茶的味道,不太甜,我挺喜欢,牛肉炒河粉味道丰富细腻,比昨天的大排档炒牛河更好吃,嫩鸡米线吃着没什么味道。

图 06图 07图 08

这一餐价格亲民,共计 HK$156。

图 04

下雨天就适合躺着睡觉,午觉后的下午没什么事儿,就往会展中心走,本地人感觉不怎么用雨衣,北京地铁守护我的出行。

图 09

到了会展这边

赞美之泉音乐会很棒,满有氛围感和感动。

图 17

结束之后想着还是到港边走走,下着小雨也没什么人,会展中心旁有一块「香港回归祖国纪念碑 —— 江泽民」,此时电视正播放江主席的纪录片《江泽民》。

图 18

随便转转就坐地铁前往住宿的宾馆。

图 19

Day2,已经有些适应 ‘湿漉漉’ 的香港天气了。

Memos: DeepSeek 在我的轻量使用场景下 API 价格涨幅近 4 倍

2026-08-14 10:35:00

我把过去 30 天的 DeepSeek 账单让 AI 分析,整理出在我的使用场景下的成本结构,缓存命中 96.88%、缓存未命中 2.55%、输出 0.56%,圆整成 97% / 2.5% / 0.5%。拟合出来的有效价格公式:

EffectivePrice=0.97H+0.025M+0.005O\text{EffectivePrice} = 0.97H + 0.025M + 0.005O

HHMMOO 分别是缓存命中 / 缓存未命中 / 输出的每百万 token 价格。

把这 3.5 亿 token 按新价重算(按 60% 峰时占比):旧账单 ¥29.64,新价约 ¥116,涨了近 4 倍

这个涨价幅度的 ‘滑动变阻器’ 应该调到哪一档呢,姑且定为 ‘难梁有余,梁子不满’。

此时更推荐使用套餐,可以参考这篇 Memos:Command Code 以及 OpenCode 的订阅还不错。另外评论区有朋友提醒目前 OpenCode 的 DS V4 Flash 是免费的,我用着稳定性还不错。

Memos: 博客支持 LaTeX 数学公式渲染

2026-08-14 10:16:00

给博客加了 LaTeX 数学公式支持,方案是 KaTeX + 构建时预渲染为静态 HTML,语法为 $...$ / $$...$$,这里记录几个示例。

行内公式

正文里插入公式不用换行,比如质能方程 E=mc2E = mc^2,或者二次方程的求根公式 x=b±b24ac2ax = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}

块级公式

独占一行、居中显示,适合放推导或者定义:

0ex2dx=π2\int_0^\infty e^{-x^2}\,dx = \frac{\sqrt{\pi}}{2}

i=1ni=n(n+1)2\sum_{i=1}^{n} i = \frac{n(n+1)}{2}

按需加载

没有公式的文章不会多引入样式或字体,只有页面里真的出现渲染结果时才加载对应的 CSS。

Memos: 博客添加了一个 /ping 路由

2026-08-13 17:36:00

访问:https://blog.yasking.org/ping

国内返回「Served by EdgeOne CDN and sourced from Cloudflare Page.」,海外返回「Served by Cloudflare Pages.」

借助 EdgeOne 和 Cloudflare 的 Functions 实现,解决了我不能快速知晓网站数据来自哪里的痛点。