PocketChest:开源临时文件分享利器,解锁高效安全共享新体验

简介

在当今数字化时代,文件分享的需求无处不在,无论是个人日常的数据传递,还是团队协作中的资料共享,都需要一个高效、安全且便捷的工具。PocketChest作为一款开源的临时文件分享工具,凭借其独特的功能和优势,成为了众多用户的首选。

PocketChest的开源特性使其具有极高的灵活性和可定制性。开发者可以根据自己的需求对代码进行修改和优化,以满足不同场景下的文件分享要求。同时,它基于Cloudflare构建,借助Cloudflare强大的网络基础设施,为文件分享提供了稳定、快速的传输环境。

功能特性

  1. 多元共享模式‌:PocketChest支持文件与文本的共享。用户既可以上传各种格式的文件,如文档、图片、视频等,也可以直接粘贴文本内容进行分享。对于对安全性有较高要求的用户,还提供了TOTP(基于时间的一次性密码)认证功能。通过设置TOTP认证,用户可以限制文件的访问权限,只有输入正确的动态密码才能获取文件,大大增强了文件分享的安全性。
  2. 大文件处理能力‌:在处理大文件方面,PocketChest表现出色。它能够轻松应对高达200GB的文件传输。利用分片上传功能,将大文件分割成多个小部分进行上传,这种方式不仅确保了上传过程的稳定性,还能提高上传效率,避免了因网络波动导致的大文件上传失败问题。
  3. 安全代码与自动过期机制‌:每次文件分享都会生成一个独特的6位数检索代码,用户可以将这个代码分享给他人,方便对方获取文件。同时,文件共享后可以设置自动过期时间,提供了1天、3天、7天和15天等多种时间选项,用户也可以选择永久保留文件。这种自动过期机制有效地防止了文件的长期暴露,保障了文件的安全性。
  4. 无注册快速分享流程‌:PocketChest最大的优势之一就是无需注册账户。用户只需上传文件,系统就会自动生成分享代码,极大地简化了使用流程。无论是临时分享文件还是紧急传递资料,都能在短时间内完成,节省了用户的时间和精力。
  5. 响应式设计适配‌:为了满足用户在不同设备上的使用需求,PocketChest采用了响应式设计。无论是在桌面电脑还是移动设备上,都能良好运行,自动适应各种屏幕尺寸,确保用户在不同设备上都能获得流畅、便捷的使用体验。
  6. 官网地址

  7. Github地址:https://github.com/Hzao/PocketChest

部署与使用指南

  1. 准备工作

    ‌要使用PocketChest,需要准备一个Cloudflare账户,并设置好域名。同时,还需要安装Wrangler CLI,这是用于部署Cloudflare Workers的命令行工具。

  2. 部署步骤

    ‌1、克隆代码库:使用git clone https://github.com/Hzao/PocketChest.git命令克隆PocketChest的代码库,然后进入项目目录cd PocketChest

  3.  2、复制配置模板:复制后端和前端的配置模板文件
    • cp pocket-chest-backend/wrangler.jsonc.template pocket-chest-backend/wrangler.jsonc
      cp pocket-chest-frontend/.env.local.template pocket-chest-frontend/.env.local
      

      3、后端部署

cd pocket-chest-backend
npm install
npm run dev        //启动开发服务器
http://localhost:8787  查看后端服务
    • 4、前端部署
    • cd pocket-chest-frontend,
      npm install
      npm run dev  // 启动开发服务器
      http://localhost:3000               //查看前端服务
      

      5、配置Cloudflare Workers

    • pocket-chest-backend/wrangler.jsonc文件中配置Cloudflare账户信息和域名。
    • 部署到Cloudflare:使用wrangler publish命令将后端部署到Cloudflare。
    • 配置数据库和存储:根据DEPLOYMENT.md文件中的说明,设置D1数据库和R2存储。
    • ‌6、完成以上部署步骤后,就可以开始使用PocketChest进行文件分享了,只需上传文件,获取分享代码,然后分享给他人即可。
    • Demo使用演示: