在阿里云 ESA Pages 上部署开源导航系统 HiCyou 及 OSS 迁移计划

简介: HiCyou 是一个开源的 SaaS 与 AI 工具发现平台,基于 Next.js 构建,实时聚合全球新品。本文介绍如何将其部署至阿里云 ESA Pages 边缘网络,并逐步迁移 Cloudflare R2 存储至阿里云 OSS,提升国内访问速度与系统集成度,助力平台全面拥抱阿里云生态。(238 字)

HiCyou 是一个开源的、致力于收集全球最新 SaaS 和 AI 工具的发现平台。我们通过 AI 技术实时捕捉、分析并结构化刚发布的新产品,为用户提供零时差的工具导航服务。

本文档详细介绍了如何将 HiCyou 部署到阿里云 ESA (Edge Security Acceleration) 的边缘程序(Edge Routine / Pages)上,并规划了从 Cloudflare R2 迁移到阿里云 OSS 的后续步骤。

1. 部署到阿里云 ESA Pages

阿里云 ESA Pages (边缘网页) 类似于 Cloudflare Pages,允许我们将 Next.js 应用部署到全球边缘节点。由于 HiCyou 是基于 Next.js 构建的,我们可以利用 ESA 的静态导出或 Node.js 兼容模式(视 ESA 具体支持情况而定,推荐使用静态导出 output: 'export' 或使用适配器)。

前置准备

image.png

  1. 开通 ESA 服务:在阿里云控制台开通边缘安全加速 ESA 服务。
  2. 创建站点:在 ESA 控制台创建一个新的站点(Site),绑定你的域名(如 hicyou.com)。
  3. 代码准备:确保本地代码可以正常 build。

部署步骤

Github 开源项目地址:

https://github.com/hicyoucom/hicyou

Demo地址:

https://hicyou.com

Snipaste_2025-11-29_01-35-01.png

方案 A: 静态导出 (推荐,适用于纯静态部分)

如果 HiCyou 的核心功能不依赖复杂的服务器端渲染 (SSR) 或 Edge Runtime,最简单的方法是使用 Next.js 的静态导出。

  1. 修改 next.config.mjs:

    const nextConfig = {
    
      output: 'export',
    
      // ... 其他配置
    
    };
    
  2. 构建项目:

    npm run build
    

    这会生成一个

    out
    

    目录。

  3. 上传到 ESA Pages:

    • 进入 ESA 控制台 -> 边缘网页 (Pages)。
    • 创建新项目,连接你的 GitHub 仓库。
    • 配置构建命令:npm run build
    • 配置输出目录:out
    • 点击部署。

方案 B: 使用 Node.js / 容器化部署 (适用于完整功能)

如果需要 SSR (Server-Side Rendering) 和 API Routes,建议使用 ESA 的计算服务或搭配阿里云 FC (函数计算)。但为了最接近 "Pages" 的体验,我们可以使用 ESA CLI 进行部署(假设 ESA 即将支持或已经支持 Next.js 适配器)。

目前最稳妥的生产级部署方案是 Docker 容器化 + ESA 边缘容器(如果支持)或 阿里云 FC + ESA 回源。此处仅介绍通用的 ESA Pages 静态托管流程,动态 API 建议通过独立服务部署。

环境配置

在 ESA Pages 的项目设置中,添加以下环境变量(参考

.env.example):

  • NEXT_PUBLIC_SITE_URL: 你的线上域名
  • NEXT_PUBLIC_SUPABASE_URL: Supabase URL
  • NEXT_PUBLIC_SUPABASE_ANON_KEY: Supabase Key
  • (其他必要的公开变量)

2. 下一步计划:兼容阿里云 OSS (替代 R2)

当前 HiCyou 使用 Cloudflare R2 存储图片(Logo 和 Cover),为了全面迁移到阿里云生态,我们需要将 R2 替换为阿里云 OSS (Object Storage Service)。

由于 R2 和 OSS 都兼容 S3 协议,迁移成本相对较低,但仍需进行以下改造。

待办事项 (Todo List)

[ ] 1. 基础设施准备

  • 在阿里云 OSS 控制台创建 Bucket (例如 hicyou-assets).
  • 配置跨域访问 (CORS) 规则,允许 hicyou.com 访问。
  • 获取 AccessKey ID 和 AccessKey Secret。
  • 配置自定义域名 (CDN 加速域名),例如 assets.hicyou.com,并开启 HTTPS。

[ ] 2. 代码改造 (fetcher/src/index.ts & app/api/...)

需要修改使用 @aws-sdk/client-s3 的地方。OSS 虽然兼容 S3,但 Endpoint 格式不同。

  • 修改 S3 Client 配置:

    ```
    // 当前 R2 配置

    const r2Client = new S3Client({

    region: "auto",
    
    endpoint: `https://${process.env.R2_ACCOUNT_ID}.r2.cloudflarestorage.com`,
    
    credentials: { ... }
    

    });

// 目标 OSS 配置

const ossClient = new S3Client({

  region: process.env.OSS_REGION, // e.g., "oss-cn-hangzhou"

  endpoint: `https://${process.env.OSS_REGION}.aliyuncs.com`, // 使用外网 Endpoint

  credentials: {

      accessKeyId: process.env.OSS_ACCESS_KEY_ID,

      secretAccessKey: process.env.OSS_ACCESS_KEY_SECRET,

  },

});


#### [ ] 3. 环境变量更新

在 

.env 中添加新的 OSS 变量,废弃 R2 变量:

DELETE

R2_ACCOUNT_ID=...

R2_ACCESS_KEY_ID=...

R2_SECRET_ACCESS_KEY=...

R2_BUCKET_NAME=...

R2_PUBLIC_URL=...

NEW (OSS)

OSS_REGION="oss-cn-shenzhen"

OSS_ACCESS_KEY_ID="LTAI..."

OSS_ACCESS_KEY_SECRET="xk3..."

OSS_BUCKET_NAME="hicyou-assets"

OSS_PUBLIC_URL="https://assets.hicyou.com"
```

[ ] 4. 数据迁移 (可选但推荐)

如果需要保留旧数据,需要将 R2 中的数据迁移到 OSS。

  • 可以使用 rclone 工具进行从 R2 到 OSS 的在线同步。

[ ] 5. 测试验证

  • 验证图片上传功能 (Logo/Cover) 是否正常写入 OSS。
  • 验证前端图片加载是否正常 (CDN 域名解析、HTTPS 证书)。
  • 验证图片处理 (OSS 自带图片处理参数 ?x-oss-process=...) 是否需要适配 (如果我们使用了 R2 的特定转换功能)。

总结

部署到 ESA Pages 能够提供更好的国内访问速度(如果有国内节点),而迁移到 OSS 则能更好地整合阿里云的 CDN 和图片处理能力。完成上述 Todo 后,HiCyou 就可以完全运行在阿里云基础设施之上。

目录
相关文章
|
3月前
|
安全 CDN
阿里云 ESA (边缘安全加速) 中国站免费版 开放申请 (免费CDN)
阿里云ESA免费版现支持中国站用户申请,提供无限流量和国内节点加速(需备案),媲美无限制CDN,显著提升访问速度,告别Cloudflare国内慢速问题。立即免费开通体验。
1487 12
|
7月前
|
存储 安全 数据挖掘
阿里云特惠云服务器轻量级38元,经济型99元,通用算力型199元性能、适用场景及选择参考
2025年,阿里云推出了3款特惠云服务器,轻量云服务器2核2G200M峰值带宽38元一年,经济型e实例云服务器2核2G3M带宽99元1年,通用算力型u1实例2核4G5M带宽199元1年。本文将深度解析这三款现象级产品的配置亮点、适用场景,以供参考和选择。
|
6月前
|
人工智能 自然语言处理 前端开发
从零到上线:用 Qwen3-Coder 和 MCP 打造儿童学习助手
本教程介绍如何利用Qwen3-Coder模型与VS Code插件打造儿童学习助手,涵盖AI编程、代码优化与网页部署,助你掌握真实场景开发技巧。
1160 28
|
11月前
|
数据可视化 搜索推荐 前端开发
建站必备!推荐20款免费WordPress主题下载合集!
本文推荐了20款免费WordPress主题,包括极简主义的Hello、功能强大的Kadence、轻量级的GeneratePress等。每款主题均附有预览图和特色介绍,如可视化编辑、自定义布局、SEO优化等,适合不同需求的建站者使用。更多主题可访问ztmao.com。
1741 5
建站必备!推荐20款免费WordPress主题下载合集!
|
存储 NoSQL PHP
如何用Redis高效实现点赞功能?用Set?还是Bitmap?
在众多软件应用中,点赞功能几乎成为标配。本文从实际需求出发,探讨如何利用 Redis 的 `Set` 和 `Bitmap` 数据结构设计高效点赞系统,分析其优缺点,并提供 PHP 实现示例。通过对比两种方案,帮助开发者选择最适合的存储方式。
514 3
|
数据建模 网络安全
阿里云申请SSL证书价格多少钱一年?免费版和付费版价格手动整理
阿里云SSL证书提供多种类型和品牌的证书选择,包括免费和付费选项。付费证书如WoSign单域名SSL证书238元/年,DigiCert通配符DV证书1500元/年,GlobalSign企业型1864元/年。免费证书由Digicert提供,有效期3个月,适用于单域名。更多详情见阿里云官网。
3472 1
|
存储 PHP 对象存储
开源免费的图床源码整理汇总-个人自用图床相册程序推荐
开源免费的图床源码整理汇总-个人自用图床相册程序推荐
2959 0
|
存储 算法 Linux
Gzip的压缩级别
【4月更文挑战第28天】Gzip的压缩级别
1196 2
|
搜索推荐 算法 UED
探讨CSDN等级制度:博客等级、原力等级、创作者等级
探讨CSDN等级制度:博客等级、原力等级、创作者等级
1420 0