自建一个匿名文件上传终结点

视频 https://www.bilibili.com/video/BV1Hz1DBZEov/ 明确需求 在做一个项目时,无论大小,首先我们要知道自己需要什么,哪些是刚需,哪些是次要的,哪些是根本不必要的 深度思考一下,我觉得该项目使用场景应该在:当我处于非家庭环境,且手上有一台不直通家庭网络但是可连接至互联网的设备,需要传输一些非敏感文件且文件不大(如:文档,截图,小软件) 那么大致的需求即为: 基于Web网页,制作一个前端页面,必须包含一个 input file 。上传完成打印上传完成 后端将文件放到一个存储空间。该存储空间必须在家庭网络内较方便的访问 方案对比 这里提供两种方案,各有优劣: 方案一:对象存储 方案二:本地服务器 稳定性 ⭐⭐⭐⭐⭐ 不依赖本地设备 ⭐⭐ 需要家庭电脑在线 复杂度 ⭐⭐⭐ 需要配置云函数 ⭐⭐⭐⭐⭐ 一行命令启动 成本 对象存储费用 无(家庭带宽) 适用场景 需要稳定运行 家庭电脑常在线 方案一:EdgeOne Pages + 对象存储 如果你希望服务稳定运行,不依赖家庭设备在线状态,那么对象存储方案更适合你。 梳理思路 借助对象存储,我只需要找一个云函数连接到我的对象存储,然后提供一个上传端点即可。 正式开始 于是我找到了EdgeOne Pages,它的Functions非常适合做这件事,且支持原生Node运行时,也就是 node-functions 直接使用 AWS-S3 这个NPM包再做一个最简单的前端上传页面,搞定! 为了防止上传重名文件,每个文件上传后都会被重命名为 原文件名_时间戳_IP 该项目已开源 afoim/EdgeOnePageFunctionUnknownUploader-S3- 方案二:Python uploadserver 更推荐: https://github.com/svenstaro/miniserve 如果你的家庭电脑通常保持在线,且追求简单易用,那么在自家电脑启动一个匿名文件上载器也是个不错的选择。 安装 确保你安装了 Python 安装 uploadserver pip install --user uploadserver 接下来,创建并进入一个新文件夹,作为 上传目录 mkdir upload cd upload 运行,并监听 IPv4 的 8000端口 ...

November 8, 2025 · 1 min · 114 words

Cyberduck - 简洁好用的S3文件浏览器

前情提要 你可能知道 或不知道我运营着一个 二次元随机图 API,比如 AcoFork - RandomPic 它的图片存储在 Cloudflare R2 也就是 Cloudflare 提供的对象存储 随机图库存总是要扩充的,在曾经,我会使用 AList ,但现在,我会使用 Cyberduck 这是什么? Cyberduck 是一个 Win&Mac 双端的云存储浏览器,相比于 AList 它无需部署,传输文件也无需中转,仅作为一个前端来连接你自己的对象存储,简洁易用,界面如图 如果你想将云存储映射为本地磁盘,可以使用姊妹软件 Mountain Duck 优点? API的图片统计,我无需再手搓S3 API来获取图片数量了,它自带 上传文件无需再通过家里云的 AList 中转了 之前的链路:我 - AList - S3 现在的链路:我 - S3 这显著降低了传输时间,提高了工作效率 不止于S3,临时给家庭服务器传输文件可以直接使用SFTP而无需登录1Panel等面板了

August 30, 2025 · 1 min · 44 words