发现新文章

我们已经通过 Google Adsense 审核!不出意外,在未开启广告拦截器的情况下,应该已经可以看到广告了

如果您对广告位置不满意(如:占据面积大,挡住主要内容等情况),请前往 置顶文章 告知我们!

732 字
4 分钟
自建一个匿名文件上传终结点
你有没有遇到过一种场景?在学校/公司电脑需要带一个文件走,但是又不想安装远程软件。那么今天,教你无需U盘,让你在任何地方将你想要的文件带回你家!
2025年11月8日 19:02:04
0 次

视频#

https://www.bilibili.com/video/BV1Hz1DBZEov/

明确需求#

在做一个项目时,无论大小,首先我们要知道自己需要什么,哪些是刚需,哪些是次要的,哪些是根本不必要的

深度思考一下,我觉得该项目使用场景应该在:当我处于非家庭环境,且手上有一台不直通家庭网络但是可连接至互联网的设备,需要传输一些非敏感文件且文件不大(如:文档,截图,小软件)

那么大致的需求即为:

  1. 基于Web网页,制作一个前端页面,必须包含一个 input file 。上传完成打印上传完成
  2. 后端将文件放到一个存储空间。该存储空间必须在家庭网络内较方便的访问

方案对比#

这里提供两种方案,各有优劣:

方案一:对象存储方案二:本地服务器
稳定性⭐⭐⭐⭐⭐ 不依赖本地设备⭐⭐ 需要家庭电脑在线
复杂度⭐⭐⭐ 需要配置云函数⭐⭐⭐⭐⭐ 一行命令启动
成本对象存储费用无(家庭带宽)
适用场景需要稳定运行家庭电脑常在线

方案一:EdgeOne Pages + 对象存储#

如果你希望服务稳定运行,不依赖家庭设备在线状态,那么对象存储方案更适合你。

梳理思路#

借助对象存储,我只需要找一个云函数连接到我的对象存储,然后提供一个上传端点即可。

正式开始#

于是我找到了EdgeOne Pages,它的Functions非常适合做这件事,且支持原生Node运行时,也就是 node-functions 直接使用 AWS-S3 这个NPM包再做一个最简单的前端上传页面,搞定!

为了防止上传重名文件,每个文件上传后都会被重命名为 原文件名_时间戳_IP

该项目已开源 afoim/EdgeOnePageFunctionUnknownUploader-S3-

方案二:Python uploadserver#

更推荐: https://github.com/svenstaro/miniserve

如果你的家庭电脑通常保持在线,且追求简单易用,那么在自家电脑启动一个匿名文件上载器也是个不错的选择。

安装#

确保你安装了 Python

安装 uploadserver

Terminal window
pip install --user uploadserver

接下来,创建并进入一个新文件夹,作为 上传目录

Terminal window
mkdir upload
cd upload

运行,并监听 IPv48000端口

Terminal window
python -m uploadserver 8000

又或者,监听 IPv68000端口

Terminal window
python -m uploadserver --bind :: 8000

接下来,你就可以在内网环境使用这个 文件上载器

打到公网#

方法一:使用EdgeOne进行IPv6回源#

将你的IPv6做 DDNS ,然后使用EdgeOne回源

方法二:STUN(仅NAT1可用)#

当你的家庭网络为 NAT1 ,则可以使用类似这样的软件将你的 内网端口 直接打到 公网端口 (貌似该程序对TCP分片敏感,会导致RST) MikeWang000000/Natter: Expose your TCP/UDP port behind full-cone NAT to the Internet.

这篇文章是否对你有帮助?

发现错误或想要改进这篇文章?

在 GitHub 上编辑此页

文章修订历史 (3 次)

查看变更记录
2026年2月9日 07:50:52 f6e3e17

压缩图片

2025年11月8日 12:02:49 3cc3930

docs(posts): 在未知上传文章中添加视频链接

2025年11月8日 11:41:26 be95da0

posts: 新增匿名文件上传功能文章,介绍如何使用EdgeOne Pages和对象存储实现匿名文件上传。在世界各地,只要有网,就能将你想要的文件带回家

自建一个匿名文件上传终结点
作者
二叉树树
发布于
2025年11月8日 19:02:04
许可协议
CC BY-NC-SA 4.0