ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

生图API 返回的图链接会过期吗?nano banana pro 出图后的托管与 CDN 方案

2026/8/14 19:10:52 拓冰建站 浏览量
生图API 返回的图链接会过期吗?nano banana pro 出图后的托管与 CDN 方案

很多人接完生图 API就直接把返回的 URL 存进数据库、渲染到详情页。 过一阵子发现图全挂了——那些链接是有时效的。

这篇讲该服务出图之后, 图片该怎么托管才不会哪天集体失效。

一、第一条铁律:拿到就转存

生成接口返回的链接不要当作长期存储。正确做法是拿到后立刻下载、转存到自己的对象存储:

async function persist(url, key) { const r = await fetch(url, { signal: AbortSignal.timeout(60_000) }); if (!r.ok) throw new Error('下载失败 HTTP ' + r.status); const buf = Buffer.from(await r.arrayBuffer()); await oss.put(key, buf); // 你的 OSS / S3 / COS return oss.publicUrl(key); } // 出图 → 立刻转存 → 库里只存自己的地址 const data = await callTtq('nano-banana-pro', prompt); const finalUrl = await persist(pickUrl(data), `sku/${skuId}/main.png`); await db.images.insert({ skuId, url: finalUrl }); // 存自己的,不存原始链接

转存失败要当成整个任务失败,别只记原始链接就算完事——那等于埋了个定时炸弹。

二、命名要能反查

图片 key 别用随机数或时间戳,用能反推来源的结构:

sku/{skuId}/{用途}-{模型}-{短哈希}.png 例:sku/10086/main-nano-banana-pro-a3f9c1.png sku/10086/scene-gpt-image-2-7b2e04.png

好处是出问题时能直接从文件名看出:哪个商品、什么用途、哪个模型出的。 后面想统计"哪个模型出的图被采用得多",扫一遍 key 就够了。

三、CDN 前面加一层,别让 OSS 直出

电商详情页图片访问量大,直连 OSS 有两个问题:(流量费)和(没有边缘节点)。

前面挂 CDN 之后还要注意:

  • 缓存时间设长。图片一旦生成基本不会改,Cache-Control: max-age=31536000
  • 要改图就换 key,别原地覆盖。覆盖了 CDN 还在返回旧的,刷缓存又慢又麻烦
  • 开 WebP 自动转换(如果 CDN 支持),体积能再降三四成

四、别把原图直接挂详情页

生图接口出的往往是 2K/4K PNG,单张两三 MB。直接挂上去详情页能卡到用户流失。

转存时同时生成几个尺寸

const sharp = require('sharp'); async function persistVariants(buf, base) { await Promise.all([ oss.put(`${base}-orig.png`, buf), // 原图留档 oss.put(`${base}-1200.jpg`, await sharp(buf).resize(1200, 1200, { fit: 'contain', background: '#fff' }).jpeg({ quality: 82, mozjpeg: true }).toBuffer()), oss.put(`${base}-400.jpg`, await sharp(buf).resize(400, 400, { fit: 'contain', background: '#fff' }).jpeg({ quality: 80, mozjpeg: true }).toBuffer()), ]); }

原图一定要留档。以后要重新裁、要换尺寸、要做别的用途,有原图就不用重新花积分出图。

五、成本上的取舍

存什么要不要留理由
原图(2K/4K PNG)重出一张要花积分,存储比重出便宜得多
各尺寸压缩版直接给前端用
明确废弃的废图定期清质检没过的没必要长期占空间
提示词 + 模型名必须留想复现或微调时的唯一依据

最后一条最容易漏。图存了但提示词没存,将来想出一张风格一致的, 只能凭记忆重新试——这才是真正的浪费。

六、模型与消耗

模型代码定位消耗
nano-banana2跑量草稿8 积分/次
nano-banana-pro终稿,支持 1K/2K/4K10 积分/次
gpt-image-2细节质感按次计费
Veo 3.1 视频生成/Sora 2生视频120 / 130 积分/次

七、小结

托管四条:返回链接拿到就转存别直接用key 命名要能反查来源CDN 缓存设长且改图换 key原图和提示词都要留档

该服务出图快、并发高,转存这一步才不会成为瓶颈;模型全(nano banana pro、gpt-image-2、Veo 3.1、Sora 2)、价格便宜稳定


接口服务:甜甜圈API(dashengfenshen.cn)