【已开源】Cursor AI 开发实战:小文件在线互传工具

作者:极客密码日期:2025/11/27

灵机一动 + Cursor + 几个小时 = 一个完整的文件传输工具!这就是 AI 编程的魅力~

前言

大家好!今天给大家分享一次纯纯的 AI 开发实战

周末在家闲着没事,突然想到平时工作中经常需要在设备间传文件,或者临时给朋友分享个东西。现有的工具要么太重(百度网盘、微信那种),要么不够安全(公开链接谁都能访问),要么就是要付费。

灵机一动:能不能做一个轻量级的临时文件传输工具?

然后打开 Cursor,开始和 AI 聊天,几个小时后,一个完整的项目就出来了 —— F2F.icu

关键是,整个项目完全基于 Cloudflare 这个赛博大善人提供的免费服务,完美的穷鬼开发者套餐:不需要买服务器、不需要装数据库、不需要担心流量费用,还自带全球 CDN 加速!

在线体验f2f.icu

工具截图

核心特性

先说说这个工具有啥亮点:

1. 极简的使用体验

整个使用流程超级简单:

  • 发送方:生成一个 6 位分享码 → 上传文件/文本 → 把码给对方
  • 接收方:输入 6 位取件码 → 一键下载

就像快递取件一样,6 个字符搞定一切。不用注册登录,不用装 APP,打开网页就能用。

2. 自动销毁机制

这个是我最喜欢的设计。数据的生命周期是这样的:

  • 上传后如果 1 小时没人下载 → 自动删除
  • 下载后 1 分钟 → 自动删除

为什么下载后不立即删除?因为考虑到网络不稳定的情况,给用户一个「重新下载」的缓冲时间。这样既保护了隐私,又提供了容错机制。

3. 完全免费 + 零维护

这是重点!整个项目完全基于 Cloudflare 的免费服务:

  • Cloudflare Pages:托管前端(全球 CDN 加速)
  • Cloudflare Workers:处理 API 请求(边缘计算)
  • Cloudflare KV:存储文件数据(自动 TTL 过期删除)

免费额度对个人使用来说完全够用:

  • KV 读取:每天 10 万次
  • KV 写入:每天 1000 次
  • Workers 请求:每天 10 万次

而且因为用了 KV 的原生 TTL 特性,数据过期自动清理,完全零维护成本

Cloudflare —— 赛博大善人的穷鬼开发套餐

这里必须吹一波 Cloudflare。

作为一个穷鬼开发者(bushi),Cloudflare 简直是业界良心:

  • Cloudflare Pages:免费托管静态网站 + 全球 CDN
  • Cloudflare Workers:免费 Serverless 函数(每天 10 万次请求)
  • Cloudflare KV:免费键值存储(每天 10 万次读取)
  • 免费 SSL 证书:自动配置 HTTPS
  • 免费 DDoS 防护:自带安全防护

这套组合拳下来,对于个人项目和小型应用来说,完全够用而且完全免费

不需要绑信用卡(划重点),注册个账号就能用。这你受得了吗?

所以我这个项目从头到尾的成本只有个几块钱的域名费用。

技术架构

下面聊聊技术实现,这也是我和 AI 一起讨论出来的方案。

为什么选 KV 而不是 R2?

很多人可能会问,Cloudflare 不是有对象存储 R2 吗,为啥不用?

这里我做了个对比:

特性KV 存储R2 对象存储
单文件大小限制25MB5GB
TTL 支持✅ 原生支持❌ 需要手动实现定时清理
读写延迟极低(边缘节点)稍高(区域存储)
免费使用✅ 直接用❌ 需要绑定信用卡

对于临时文件传输这个场景,KV 简直是完美选择:

  1. 原生 TTL:上传时直接设置过期时间,到期自动删除,不用写定时任务
  2. 25MB 够用:日常传个文档、图片、小视频完全够
  3. 零成本启动:不需要绑卡,注册就能用

数据流转过程

整个数据流是这样的:

1发送方上传
2   文件转 Base64 编码
3   存入 KV(TTL: 1小时)
4   返回分享码
5
6接收方下载
7   验证分享码
8    KV 读取数据
9   更新 TTL  1 分钟
10   返回文件/文本
11

核心代码其实很简单,以上传为例(简化版):

1// functions/api/upload.ts
2export async function onRequestPost({ request, env }) {
3  const formData = await request.formData();
4  const code = formData.get("code"); // 6位分享码
5  const content = formData.get("content"); // Base64 内容
6
7  // 存入 KV,设置 1 小时过期
8  await env.TRANSFERS.put(
9    code,
10    JSON.stringify({
11      type: "file",
12      content: content,
13      fileName: fileName,
14      downloaded: false,
15    }),
16    {
17      expirationTtl: 3600, // 1小时 = 3600秒
18    }
19  );
20
21  return new Response(JSON.stringify({ success: true }));
22}
23

下载时:

1// functions/api/download.ts
2export async function onRequestGet({ request, env }) {
3  const code = new URL(request.url).searchParams.get("code");
4
5  const data = await env.TRANSFERS.get(code);
6
7  // 标记为已下载,更新 TTL  1 分钟
8  await env.TRANSFERS.put(
9    code,
10    JSON.stringify({
11      ...data,
12      downloaded: true,
13    }),
14    {
15      expirationTtl: 60, // 1分钟后自动删除
16    }
17  );
18
19  return new Response(JSON.stringify(data));
20}
21

是不是很简洁?KV 的 API 非常易用,而且支持直接设置过期时间,省去了很多额外的清理逻辑。

前端设计

前端我用了 Tailwind CSS + 原生 JavaScript,没有引入 Vue/React 这些框架,原因是:

  1. 体积小:整个前端打包后不到 100KB
  2. 加载快:静态 HTML,秒开
  3. 够用了:功能不复杂,用不着框架

界面设计上追求极简

  • 两个 Tab(发送/接收)
  • 三种内容类型(文件/文本/图片)
  • 一键操作(生成码 → 上传 → 分享)

支持拖拽上传、粘贴截图(Ctrl/Cmd + V),这些交互细节让使用体验更好。

安全性考虑

关于安全,有几点要说明:

分享码的强度

6 位字符(A-Z, 0-9)= 36^6 = 21.8 亿种组合

理论上暴力破解的成功率是很低的,而且:

  • 数据会自动过期(最多 1 小时)
  • 分享码只能使用一次(下载后 1 分钟删除)

所以安全性对于临时文件传输场景是够用的。

使用建议

虽然有一定安全性,但我还是建议:

⚠️ 不要传输高度敏感信息(密码、私钥、身份证号等)

这个工具的定位是轻量级临时文件传输,适合:

  • 发送工作文档
  • 分享照片/截图
  • 传输代码文件
  • 分享文本片段

部署超简单

说到部署,真的是简单到爆。完全不需要自己的服务器,只需要一个 Cloudflare 账号(免费):

Fork + 一键部署

  1. Fork 我的 GitHub 仓库
    github.com/isnl/f2f
  2. 连接到 Cloudflare Pages
    • 登录 Cloudflare Dashboard
    • Workers & Pages → 创建应用 → 连接 Git
    • 选择你 Fork 的仓库
    • 构建配置:输出目录填 public
  3. 创建 KV 存储
    • 在 KV 板块创建一个命名空间(比如 f2f-transfers
    • 在 Pages 项目设置中绑定这个 KV(变量名:TRANSFERS
  4. 完成!
    Cloudflare 会给你一个域名,直接访问就能用。如果有自己的域名,还可以绑定自定义域名。

整个过程 5 分钟搞定,而且之后不需要任何维护,Cloudflare 自动帮你处理全球分发、HTTPS 证书、数据清理等等。

一些有趣的优化

1. 6 位分享码的设计

为什么是 6 位?因为:

  • 4 位太短(只有 160 万组合,容易碰撞)
  • 8 位太长(用户记忆和输入成本高)
  • 6 位刚刚好(21 亿组合 + 便于记忆)

而且只用大写字母和数字(不用小写),避免了 O 和 0、I 和 1 的混淆。

2. 图片的特殊处理

对于图片类型,接收方可以直接在页面上预览,而不是强制下载。这样分享截图特别方便,对方打开链接就能看到。

3. 响应式设计

全面适配手机、平板、电脑,在手机上的体验也很流畅。经常我在外面用手机传个文件给自己电脑,特别方便。

4. 国际化支持

已经内置了中英双语支持(i18n),根据浏览器语言自动切换,代码里也准备了中英文文档。虽然功能简单,但该有的细节都有。

AI 编程的一些感悟

1. AI 是放大器,不是替代品

AI 让我的开发效率提升了至少 3-5 倍,但核心的:

  • 需求设计(要做什么)
  • 技术选型(用什么方案)
  • 问题发现(哪里不对劲)
  • 体验优化(怎么做更好)

这些还是需要我自己来决策。AI 是个超强的执行助手,但产品思维和技术判断还得靠人。

2. 会提问很重要

和 AI 对话式编程,最重要的是会提问

  • ❌ "帮我写个上传功能"(太笼统)
  • ✅ "写一个文件上传 API,接收 FormData,验证文件大小不超过 25MB,转 Base64 存到 KV,设置 TTL 为 3600 秒"(清晰明确)

问题越具体,AI 给的答案越准确。

3. 快速迭代才是王道

有了 AI,我可以快速试错:

  • 想到一个功能 → 让 AI 实现 → 测试 → 不满意就换方案
  • 整个过程可能只要几分钟

这种快速迭代的能力,在以前是不敢想象的。

4. 专注于创意和产品

因为 AI 帮我搞定了大量的"体力活"(写基础代码、调样式、配环境),我可以把更多精力放在:

  • 产品体验的打磨
  • 功能细节的优化
  • 用户场景的思考

这才是真正有价值的部分。

总结

关于 AI 编程开发

AI 真的改变了个人开发者的游戏规则

以前做一个完整的项目,可能需要几天甚至几周。现在有了 Cursor 这样的 AI 编程工具,一个周末下午就能从想法到上线。

但关键是,你得知道自己要什么,然后引导 AI 去实现。AI 是工具,是助手,不是魔法棒。

关于 Cloudflare

赛博大善人,名不虚传

作为穷鬼开发者,Cloudflare 的免费服务让我们不需要购买服务器、不需要关心运维、不需要担心流量费用,就能做出一个全球可用、性能优秀的 Web 应用。

而且因为是边缘计算,用户访问时会自动路由到离他最近的节点,无论在国内还是国外,速度都很快。

给想尝试的你

如果你也想体验 AI 编程开发,或者对 Cloudflare 的边缘计算感兴趣:

  1. 装个 Cursor(或者其他 AI 编程工具)
  2. 注册个 Cloudflare 账号(免费的)
  3. 想个有意思的小项目(解决自己的实际需求)
  4. 开始和 AI 聊天写代码

你会发现,做一个自己的产品,真的没那么难了。

这个项目的代码很简洁,总共也就几百行,非常适合学习和二次开发。如果你想自己部署一套,或者想看看是怎么实现的,欢迎去 GitHub 看看。


项目地址github.com/isnl/f2f

在线体验f2f.icu

如果觉得有用,欢迎 Star ⭐️ 支持一下!

有任何问题或建议,也欢迎在 GitHub 上提 Issue,我会及时回复的~


技术栈总结

  • 🤖 开发工具:Cursor(AI 辅助编程)
  • 🎨 前端:原生 JavaScript + Tailwind CSS
  • ⚡️ 后端:Cloudflare Workers(Serverless)
  • 💾 存储:Cloudflare KV(键值存储)
  • 🌐 托管:Cloudflare Pages(全球 CDN)
  • 🌍 国际化:内置中英双语支持
  • 💰 成本:完全免费 🎉
  • ⏱️ 开发时间:不到 4 小时

希望这篇文章对你有帮助!如果你也用 AI 做了有趣的项目,欢迎在评论区分享~


哦对了,最近从 Cursor 又平滑迁移到 Claude Code 了,给大家分享一个正在使用的 Claude Code 中转站,非公益站!

因为他家有付费用户,所以稳定性相当不错,体验非常丝滑!而且模型能力就我重度 AI 使用体验而言,无降智!无降智!无降智!(用过 Cursor/AugmentCode/Trae/Windsurf/Github Copilot/国产 glm、kimi、minimax 等等)

注册即可赠送 30 刀额度,正常使用 claude-4.5-sonnet,可以用很久

api.codemirror.codes/register?af…


【已开源】Cursor AI 开发实战:小文件在线互传工具》 是转载文章,点击查看原文


相关推荐


LangChain / LLM 开发中:invoke() 与 predict() 的区别
吴佳浩2025/11/25

LangChain / LLM 开发中:invoke() 与 predict() 的区别 文章当中的1400等等协议内容大家不必在意这是我日常会用到的 大家主要了解就可以了 作者:吴佳浩 最后更新:2025-11-25 适用版本:LangChain v1.0+ 1. 为什么会有 invoke() 和 predict() 两个方法? 在 LangChain / LCEL / OpenAI ChatModel 开发中,你会看到同一个模型居然能同时调用: llm.predict(...) l


再来聊聊,Vue3 项目中 Pinia 的替代方案
前端布鲁伊2025/11/23

想获取更多2025年最新前端场景题可以看这里:fe.ecool.fun 大家好,我是刘布斯。 之前转载了一篇文章Vue 项目不要再用 Pinia 了,先不可否认,这文章有点标题党的意思。但这篇文章的主要观点是说,在中小项目里,用 Vue 3 自带的组合式 API(reactive / ref)来管状态,很多时候比硬上 Pinia 要香。 好家伙,评论区一下就热闹了,总结起来是:“Pinia 多好用,你肯定是没用明白 Pinia” 说实话,我确实有点意外。 我先摆明态度:Pinia 是个非常优秀的


2025.11.19 力扣每日一题
小白程序员成长日记2025/11/21

2154.将找到的值乘以2 这个题目比较简单,做的挺快的。 class Solution { public: int findFinalValue(vector<int>& nums, int original) { //1.对数组进行排序 sort(nums.begin(),nums.end()); //2.遍历排序后的数组 for (int num : nums) { //3.如果当前数字等于original


Windows开发:一场与指针的共舞,亦是超越它的征程
码事漫谈2025/11/19

当人们问“Windows开发导致指针吗?”或“Windows开发到底指针么?”,这背后其实是一个混合了技术困惑和职业好奇的复杂问题。简单来说,这个问题的内核是:Windows开发是否是一个整天与令人头疼的指针打交道的岗位? 答案是双重的:是的,深入理解指针是高级Windows开发的基石;但也不是,因为现代Windows开发已经在很大程度上帮助你管理指针,让你更专注于业务逻辑。 一、解码问题:什么是“Windows开发到底指针么?” 这个问题通常源于以下几点认知: 技术传说: C/C++是Win


rust语言,将JSON中的所有值以字符串形式存储到sqlite数据库中(逐行注释)
咸甜适中2025/11/18

主要功能实现: 所有json中数字转为字符串,保持精度不变巨大值 直接存储为字符串:3355446515156151516158.55125184845684值为列表:["egeggeg","gegeg",25.5] 存储为: ["egeggeg","gegeg","25.5"]值为字典:{"name":"小小","age":26} 存储为: {"name":"小小","age":"26"} 代码 use regex::Regex; use rusqlite::{Connection, Res


利用CMDB数据实现指标业务维度的动态扩展
可观测性用观测云2025/11/17

背景 很多客户已经建有 Prometheus/Zabbix 等采集方式,通常不会贸然替换 DataKit 进行直采,往往是通过 DataKit 去获取其它工具采集的结果。如 Prometheus remote write,Zabbix export 等。 为了增加不同数据类型的关联性,需要对已有的指标数据添加更多业务 TAG,如应用名,所属项目,部门等。为实现此类需求,需要能够获得原始的相关配置信息,如 CMDB 数据等。然后通过观测云 Pipeline 中的 refere_table() 方法


深入浅出 SQLSugar:快速掌握高效 .NET ORM 框架
q***2512025/11/16

SQLSugar 是一个高效、易用的 .NET ORM 框架,支持多种数据库(如 SQL Server、MySQL、PostgreSQL 等)。它提供了丰富的功能,包括 CRUD 操作、事务管理、动态表名、多表联查等,开发者可以通过简单的链式操作实现复杂的数据库逻辑。 本文将以完整的示例,详细介绍 SQLSugar 的安装、配置和功能使用,适用于 .NET Framework 和 .NET Core 项目。 一、SQLSugar简介 1. 什么是 SQLSugar? SQLSugar 是一个轻量


vscode编译C语言 | 在VSCode中配置编译环境与常见问题解决
epvikz_0732025/11/15

三十岁学编程|从零开始,如何在30岁起步学编程并成功转行许多人认为编程是年轻人的事情,尤其是到了三十岁,很多人会觉得自己已经错过了最佳学习的时机。然而,实际上三十岁学编程并非不可能,反而可能是一个崭新的开始。在这个信息化时代,编程能力已成为许多行业的基本技能,很多人通过自学编程成功转行,获得了新的职业发展机会。首先,学编程最重要的就是坚持和耐心。虽然编程看起来有些抽象,但通过系统的学习和实践,任何人都可以掌握基本的编程技能。比如,掌握Python或JavaScript等基础语言,它们不仅有着强大


用Microsoft Visual Studio Installer Projects 2022打包程序,同时安装VC++的运行库等
CE贝多芬2025/11/13

目录 一、安装插件 二、创建打包程序 在解决方案中新建打包项目 三、配置打包属性内容等 文件系统的各个文件夹 将输出程序打包进Application Folder 创建桌面快捷方式 创建卸载程序 给快捷方式创建图标 设置打包时的属性以及安装语言,安装位置等信息 四、打包 五、附录 六、附录二 一、安装插件 说明: Microsoft Visual Studio Installer Projects 2022 是微软官方提供的 Visual Studio


高德MCP服务接入
QD.Joker2025/11/12

创建一个agent,集成高德MCP工具 文章目录 一、安装依赖二、获取高德key三、代码实现 一、安装依赖 pip install openai pip install langchain (1.0版本以上) pip install langchain_mcp_adapters 二、获取高德key https://lbs.amap.com/api/mcp-server/create-project-and-key 三、代码实现 import asynci

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2025 聚合阅读