用CF Worker和R2来建立自己的快捷文件中转站

我一直在使用 bashupload.com 来在命令行中传递文件,从而避免切换SFTP等繁琐操作。最近在研究用R2做图床,想到R2不限流量的下载,和文件中转的功能也很契合,于是结合Worker和R2,做了一个开源自建文件中转的项目:
GitHub - DullJZ/bashupload-r2: Use CF Worker & R2 to set your own fast file transit station, and simply upload from bash. Support password for upload and download. Support setting file lifetime.用CF Worker和R2来建立自己的快捷文件中转站,使用终端轻松上传。支持密码保护上传下载和文件有效期 (求star)

快速开始

可以直接使用我已经搭建好的服务: https://bashupload.app

# 查看用法
curl bashupload.app
# 上传文件
curl bashupload.app -T YOUR_FILE
# 上传文件并创建短链接
curl bashupload.app/short -T YOUR_FILE

R2中的文件将在以下情况后自动删除:

  • 第一次请求下载
  • 超过一小时没有下载(自部署可调整)

上传文件大小限制为5GB(自部署可调整)

自部署

如果你考虑隐私问题,或者需要更大的文件、更长的存储空间,项目支持Cloudflare自部署,点击按钮即可

Deploy to Cloudflare

在页面中连接到你的GitHub账号,设置R2存储桶的区域,按需调整三个环境变量:最大文件大小、文件保存最长时间、短链接API,点击部署即可

如果你没有域名,可以使用CF自带的worker.dev,搭配alias别名和短链接使用:

alias bashupload='curl bashupload.xxxx.worker.dev -T'
alias bashuploadshort='curl bashupload.xxxx.worker.dev/short -T'
bashupload file.txt        # 返回普通链接
bashuploadshort file.txt     # 返回短链接
25 个赞

感谢大佬

1 个赞

感谢大佬先mark一下

1 个赞

佬友太强辣~

2 个赞

mark一下

1 个赞

大佬, 想在小团队内使用, 能不能加个密码访问功能

密码实现逻辑是什么呢,上传需要密码还是下载需要密码

通过密码验证之后才能上传或下载

实现起来应该不难,但是密码放在Authorization头会显得命令行冗长,除非搭配别名

感谢大佬分享

感谢大佬分享

最新的代码已经支持在环境变量中设置密码,上传下载都需要在Authorization头中校验密码,详见GitHub页面

感谢感谢, :+1:

又有新需求了, 是否可以设置一个文件的有效期,到期删除,而不是下载一次就删除, 不设置有效期就下载一次就删除

最新版本已经支持该功能 :face_blowing_a_kiss:

谢谢,感谢佬友

厉害了佬友,感谢开源

1 个赞

佬友太强辣!支持一下

1 个赞

强大的佬友 :+1:

有意思,我立刻部署 :face_savoring_food: