mirror of
https://github.com/afoim/fuwari.git
synced 2026-01-31 09:03:18 +08:00
posts: 新增匿名文件上传功能文章,介绍如何使用EdgeOne Pages和对象存储实现匿名文件上传。在世界各地,只要有网,就能将你想要的文件带回家
This commit is contained in:
35
.github/PULL_REQUEST_TEMPLATE/friend.md
vendored
35
.github/PULL_REQUEST_TEMPLATE/friend.md
vendored
@@ -1,35 +0,0 @@
|
||||
---
|
||||
name: 添加友链
|
||||
about: 申请添加新的友情链接
|
||||
title: '添加友链: [你的网站名称]'
|
||||
labels: friend-link
|
||||
assignees: ''
|
||||
---
|
||||
|
||||
## 友链信息
|
||||
|
||||
请填写以下信息:
|
||||
|
||||
### 基本信息
|
||||
- 网站名称:
|
||||
- 网站描述:(简短介绍,建议不超过50字)
|
||||
- 网站链接:(必须使用HTTPS)
|
||||
- 头像链接:(必须使用HTTPS,建议使用长期有效的链接)
|
||||
|
||||
### 确认清单
|
||||
- [ ] 我的网站已添加本站友链
|
||||
- [ ] 我的网站内容符合中国大陆法律法规
|
||||
- [ ] 我的网站在过去3个月内有更新内容
|
||||
- [ ] 我的网站可以正常访问
|
||||
- [ ] 我提供的所有链接都使用HTTPS协议
|
||||
- [ ] 我提供的头像链接是长期有效的
|
||||
|
||||
### 本站友链信息
|
||||
请告诉我们您网站上添加的本站友链信息:
|
||||
- 使用的名称:
|
||||
- 使用的描述:
|
||||
- 使用的链接:
|
||||
- 使用的头像:
|
||||
|
||||
### 补充说明
|
||||
如有其他需要说明的内容,请在此处补充:
|
||||
25
.github/PULL_REQUEST_TEMPLATE/sponsor.md
vendored
25
.github/PULL_REQUEST_TEMPLATE/sponsor.md
vendored
@@ -1,25 +0,0 @@
|
||||
---
|
||||
name: 赞助支持
|
||||
about: 添加赞助信息到赞助列表
|
||||
title: '添加赞助: [你的名字]'
|
||||
labels: sponsor
|
||||
assignees: ''
|
||||
---
|
||||
|
||||
## 赞助信息
|
||||
|
||||
请填写以下信息:
|
||||
|
||||
### 基本信息
|
||||
- 显示名称:
|
||||
- 赞助金额:
|
||||
- 赞助日期:(格式:YYYY-MM-DD)
|
||||
- 头像链接:(可选,建议使用HTTPS链接)
|
||||
|
||||
### 确认清单
|
||||
- [ ] 我已确认赞助金额已成功支付
|
||||
- [ ] 我提供的头像链接是长期有效的
|
||||
- [ ] 我同意将这些信息公开显示在网站的赞助者列表中
|
||||
|
||||
### 补充说明
|
||||
如有其他需要说明的内容,请在此处补充:
|
||||
BIN
src/content/assets/images/unknown-upload-1.png
Normal file
BIN
src/content/assets/images/unknown-upload-1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 25 KiB |
BIN
src/content/assets/images/unknown-upload-2.png
Normal file
BIN
src/content/assets/images/unknown-upload-2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
BIN
src/content/assets/images/unknown-upload.png
Normal file
BIN
src/content/assets/images/unknown-upload.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 18 KiB |
44
src/content/posts/unknown-upload.md
Normal file
44
src/content/posts/unknown-upload.md
Normal file
@@ -0,0 +1,44 @@
|
||||
---
|
||||
title: 自建一个匿名文件上传终结点
|
||||
published: 2025-11-08T11:02:04
|
||||
description: 你有没有遇到过一种场景?在学校/公司电脑需要带一个文件走,但是又不想安装远程软件。那么今天,教你无需U盘,让你在任何地方将你想要的文件带回你家!
|
||||
image: ../assets/images/unknown-upload.png
|
||||
tags:
|
||||
- EdgeOne
|
||||
- 对象存储
|
||||
draft: false
|
||||
lang: ""
|
||||
---
|
||||
# 明确需求
|
||||
|
||||
在做一个项目时,无论大小,首先我们要知道自己需要什么,哪些是刚需,哪些是次要的,哪些是根本不必要的
|
||||
|
||||
深度思考一下,我觉得该项目使用场景应该在:当我处于非家庭环境,且手上有一台不直通家庭网络但是可连接至互联网的设备,需要传输一些非敏感文件且文件不大(如:文档,截图,小软件)
|
||||
|
||||
那么大致的需求即为:
|
||||
1. 基于Web网页,制作一个前端页面,必须包含一个 `input file` 。上传完成打印上传完成
|
||||
2. 后端将文件放到一个存储空间。该存储空间必须在家庭网络内较方便的访问
|
||||
|
||||
# 梳理思路,决定架构
|
||||
|
||||
一开始我想用一种最简单的方法,这种方法无需编写任何代码。那就是使用 [【花生壳HFS for win 正式版】使用教程-贝锐花生壳官网](https://hsk.oray.com/news/14884.html) 。我只需要将该软件部署在我的家庭电脑,然后通过CDN将服务映射到公网即可。但这会遇到几个问题:
|
||||
1. 若我的家庭电脑离线,服务将不可用
|
||||
2. 使用时会占用家中的下载带宽
|
||||
|
||||

|
||||
|
||||
那么换个思路,我们是否可以借助对象存储?
|
||||
|
||||
当然可以,我只需要找一个云函数连接到我的对象存储,然后提供一个上传端点
|
||||
|
||||
# 正式开始
|
||||
|
||||
于是我找到了EdgeOne Pages,它的Functions非常适合做这件事,且支持原生Node运行时,也就是 `node-functions` 直接使用 `AWS-S3` 这个NPM包再做一个最简单的前端上传页面,搞定!
|
||||
|
||||

|
||||
|
||||
为了防止上传重名文件,每个文件上传后都会被重命名为 `原文件名_时间戳_IP`
|
||||
|
||||
该项目已开源 [afoim/EdgeOnePageFunctionUnknownUploader-S3-](https://github.com/afoim/EdgeOnePageFunctionUnknownUploader-S3-)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user