oss-media-transfer.md 3.5 KB

OSS 媒体转存实测

日期:2026-06-29

结论

当前 .env 已配置 OSS 转存接口:

CRAWLER_OSS_UPLOAD_URL=http://crawler-upload-v2.aiddit.com/crawler/oss/upload_stream
CRAWLER_OSS_UPLOAD_TIMEOUT_SECONDS=60

接口请求体:

{
  "src_url": "远程媒体直链",
  "src_type": "image 或 video"
}

返回结构里 oss_object.cdn_url 是可用 CDN 地址。当前本地封装在 acquisition/oss.py

  • upload_stream(src_url, src_type="image"|"video"):成功返回 CDN URL,失败抛错。
  • to_oss(src_url, src_type):成功返回 CDN URL,失败返回原 URL,用于降级。

实测结果:小红书图片、微信公众号图片、抖音视频都可以直接把原始媒体 URL 丢给该接口转存到 CDN。

图文和文字的处理边界

小红书和微信公众号的“图文”需要拆开处理:

  • 图片:每张图片都有远程 URL,可以逐张调用 upload_stream(..., src_type="image") 转成 CDN URL。
  • 文字:正文是 body_text 字段,不是媒体 URL;该 upload_stream 接口不支持直接上传纯文本。

因此完整图文帖的存储结构应是:

{
  "title": "...",
  "body_text": "...",
  "images": ["https://res.cybertogether.net/crawler/image/xxx.webp"],
  "source_url": "原帖 URL"
}

如果以后希望正文也进 OSS,需要另做一层:把正文打成 JSON/HTML/Markdown 文件,再用支持文件/字节上传的接口;不能直接复用当前 src_url + src_type=image|video 的转存接口。

实测记录

接口样例视频

源 URL:

https://res-bj.cybertogether.net/crawler/test2.mp4

请求:

{
  "src_url": "https://res-bj.cybertogether.net/crawler/test2.mp4",
  "src_type": "video"
}

结果:成功。

CDN URL:

https://res.cybertogether.net/crawler/video/f7950e5639acb0cc393edce6edcb63e8.mp4

小红书

测试 query:人生感悟 选题

样本:

  • 标题:分享|女性成长赛道的热门选题🔥小白直接抄
  • content_id:69bd387c000000001d01e68a
  • 详情接口返回图片数:8
  • 正文字数:115
  • 转存类型:image

结果:成功。

CDN URL:

https://res.cybertogether.net/crawler/image/8de0ca10016540ebf31eee6428691155.webp

微信公众号

测试 query:短视频脚本 怎么写

样本:

  • 标题:短视频脚本写不好?三个习惯让你的稿子开口就抓人
  • 详情接口返回图片数:6
  • 正文字数:2794
  • 转存类型:image

结果:成功。

CDN URL:

https://res.cybertogether.net/crawler/image/d7f4306fba37fafd2fe191554bcf7b05.gif

抖音

测试 query:短视频脚本 怎么写

样本:

  • 标题:不会写脚本才能干好新媒体运营#新媒体运营...
  • content_id:7624537985144543729
  • 详情接口返回视频数:1
  • 转存类型:video

结果:成功。

CDN URL:

https://res.cybertogether.net/crawler/video/2d4ec0766f8de5bef9b3271aa1c2c7f5.mp4

后续实现建议

  1. 搜索到帖子后,不再把媒体下载到本地 data/search
  2. 对小红书/微信公众号图文:拉详情后遍历 image_urls,逐张转存 OSS,正文继续保存在结构化记录里。
  3. 对抖音:取详情里的首个 video_url,用 src_type="video" 转存 OSS;封面图如需要展示,也可以用 src_type="image" 转存。
  4. 数据库或 JSON 记录只保存 CDN URL、正文、标题、原帖 URL、平台、query、正交方法等轻量字段。