基于 Vue 3 + Express 的网盘资源搜索与转存工具,支持响应式布局,移动端与PC完美适配

news2025/4/17 13:56:57

一个基于 Vue 3 + Express 的网盘资源搜索与转存工具,支持响应式布局,移动端与PC完美适配,可通过 Docker 一键部署。

功能特性

  • 🔍 多源资源搜索
    • 支持多个资源订阅源搜索
    • 支持关键词搜索与资源链接解析
    • 支持豆瓣热门榜单展示
  • 💾 网盘资源转存
    • 支持115 网盘,夸克网盘,天翼网盘,123云盘一键转存
    • 支持转存文件夹展示与选择
  • 👥 多用户系统
    • 支持用户注册登录
    • 支持管理员与普通用户权限区分
  • 📱 响应式设计
    • 支持 PC 端与移动端自适应布局
    • 针对不同设备优化的交互体验

技术栈

前端

  • 核心框架
    • Vue 3
    • TypeScript
    • Vite
  • 状态管理
    • Pinia
  • 路由管理
    • Vue Router
  • UI 组件库
    • Element Plus (PC)
    • Vant (Mobile)
  • 工具库
    • Axios

后端

  • 运行环境
    • Node.js
    • Express
  • 数据存储
    • SQLite3

环境要求

  • Node.js >= 18.x
  • pnpm >= 8.x (推荐)

快速开始

开发环境

  1. 克隆项目
git clone https://github.com/jiangrui1994/CloudSaver.git
cd CloudSaver
  1. 安装依赖
pnpm install
  1. 配置环境变量
cp ./backend/.env.example ./backend/.env

根据 .env.example 文件说明配置必要的环境变量。

  1. 启动开发服务器
pnpm dev

生产环境部署

  1. 构建前端
pnpm build:frontend
  1. 构建后端
cd backend
pnpm build
  1. 启动服务
pnpm start

Docker 部署

说明:镜像源有两个地址供选择,下面部署命令中使用的是dockerhub托管的地址为例,github托管的地址请自行替换

  • dockerhub托管:
    • jiangrui1994/cloudsaver:latest 稳定版
    • jiangrui1994/cloudsaver:test 测试版 (包含最新功能和bug修复,但可能不如稳定版稳定)
  • github托管:
    • ghcr.io/jiangrui1994/cloudsaver:latest 稳定版
    • ghcr.io/jiangrui1994/cloudsaver:test 测试版 (包含最新功能和bug修复,但可能不如稳定版稳定)
单容器部署

稳定版:

docker run -d \
  -p 8008:8008 \
  -v /your/local/path/data:/app/data \
  -v /your/local/path/config:/app/config \
  --name cloud-saver \
  jiangrui1994/cloudsaver:latest

测试版(包含最新功能和bug修复,但可能不如稳定版稳定):

docker run -d \
  -p 8008:8008 \
  -v /your/local/path/data:/app/data \
  -v /your/local/path/config:/app/config \
  --name cloud-saver \
  jiangrui1994/cloudsaver:test
Docker Compose 部署

创建 docker-compose.yml 文件:

稳定版:

version: "3"
services:
  cloudsaver:
    image: jiangrui1994/cloudsaver:latest
    container_name: cloud-saver
    ports:
      - "8008:8008"
    volumes:
      - /your/local/path/data:/app/data
      - /your/local/path/config:/app/config
    restart: unless-stopped

测试版:

version: "3"
services:
  cloudsaver:
    image: jiangrui1994/cloudsaver:test
    container_name: cloud-saver
    ports:
      - "8008:8008"
    volumes:
      - /your/local/path/data:/app/data
      - /your/local/path/config:/app/config
    restart: unless-stopped
/app/config 目录说明
  • env 文件:包含后端环境变量配置
# JWT配置
JWT_SECRET=your_jwt_secret_here

# Telegram配置
TELEGRAM_BASE_URL=https://t.me/s

# Telegram频道配置(0.3.0及之后版本无效)
TELE_CHANNELS=[{"id":"xxxx","name":"xxxx资源分享"}]

运行:

docker-compose up -d

注意: 测试版(:test标签)包含最新的功能开发和bug修复,但可能存在不稳定因素。建议生产环境使用稳定版(:latest标签)。

注意事项

  1. 资源搜索需要配置代理环境
  2. 默认注册码
    • 管理员:230713
    • 普通用户:9527

0.3.0以及之后的版本 请看这个

设置页面,自己设置!!
在这里插入图片描述
可直接批量导入的频道配置:
批量添加成功后,可自己在设置里面拖动排序或者选择性的禁用。

[{"id":"guaguale115","name":"115影视资源分享频道"},
{"id":"hao115","name":"115网盘资源分享频道"},
{"id":"yunpanshare","name":"网盘资源收藏(夸克)"},
{"id":"shareAliyun","name":"阿里云盘发布频道"},
{"id":"XiangxiuNB","name":"肯德基の4K影视综合电影云盘站"},{"id":"Quark_Movies","name":"夸克云盘综合资源"},
{"id":"Aliyun_4K_ Movies","name":"阿里云盘4K影视"},
{"id":"zaihuayun","name":"阿里云盘资源"},
{"id":"tgsearchers","name":"资源宇宙"},
{"id":"pan115_share","name":"爱影115资源分享频道"},
{"id":"PanjClub","name":"盘酱酱Club"},
{"id":"tianyirigeng","name":"天翼云盘资源频道"},
{"id":"xx123pan","name":"123云盘资源频道"},
{"id":"zyzhpd123","name":"123云盘综合频道"},
{"id":"cloudtianyi","name":"天翼云盘资源发布频道"},
{"id":"tyypzhpd","name":"天翼云盘综合频道"},
{"id":"Oscar_4Kmovies","name":"奥斯卡4K蓝光(精品)影视磁力站"},{"id":"ydypzyfx","name":"移动云盘资源分享"},
{"id":"bdwpzhpd","name":"百度网盘综合频道"},
{"id":"baidudianshi","name":"可乐小屋"},
{"id":"yunpanall","name":"综合频道"},
{"id":"NewQuark","name":"夸克浏览器二三事"},
{"id":"NewAliPan","name":"阿里云盘吧(新)"},
{"id":"Q66share","name":"阿里云盘吧"},
{"id":"BaiduCloudDisk","name":"百度网盘资源分享"},
{"id":"yunpan139","name":"网盘资源收藏(移动云盘)"},
{"id":"yunpanuc","name":"网盘资源收藏(UC网盘)"},
{"id":"pan123pan","name":"网盘资源收藏(123云盘)"},
{"id":"yunpanpan","name":"云盘盘"},
{"id":"qixingzhenren","name":"云盘资源发布频道"},
{"id":"pankuake_share","name":"爱影夸克频道"},
{"id":"duanjucabian","name":"热门短剧/擦边短剧/精选短剧/在线预览"},{"id":"yoyokuakeduanju","name":"YOYO资源|夸克|短剧"},{"id":"Channel_Shares_115","name":"Shares_115_Channel"},
{"id":"alyp_1","name":"网盘(高品质)影视"},
{"id":"yeqingjie_GJG666","name":"爷青回动画分享"}
]

特别声明

  1. 本项目仅供学习交流使用,请勿用于非法用途
  2. 仅支持个人使用,不支持任何形式的商业使用
  3. 禁止在项目页面进行任何形式的广告宣传
  4. 所有搜索到的资源均来自第三方,本项目不对其真实性、合法性做出任何保证

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2334331.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【操作系统学习篇-Linux】进程

1. 什么是进程 课本概念:程序的一个执行实例,正在执行的程序等 内核观点:担当分配系统资源(CPU时间,内存)的实体。 如果你就看这个来理解进程,那么恭喜你,作为初学者,你…

CF985G Team Players

我敢赌,就算你知道怎么做,也必然得调试半天才能 AC。 [Problem Discription] \color{blue}{\texttt{[Problem Discription]}} [Problem Discription] 图片来自洛谷。 [Analysis] \color{blue}{\texttt{[Analysis]}} [Analysis] 显然不可能正面计算。所以…

企业经营决策风险

在企业的经营过程中,领导者每天都在面对大量的决策——该扩大生产还是收缩业务?该增设销售渠道还是提升产品质量?但你知道吗,企业最大的成本,不是生产成本,也不是人工成本,而是决策错误的成本&a…

UE5蓝图实现打开和关闭界面、退出

Button_Back 和Button_Exit是创建的两个按钮事件。 1.Create Widget 创建界面(打开界面) 2.Add to Viewport 添加到视图 3.remove form Parent,Target:self 从父节点移除当前界面(关闭界面) 4.Quit Game 退…

JavaWeb 课堂笔记 —— 09 MySQL 概述 + DDL

本系列为笔者学习JavaWeb的课堂笔记,视频资源为B站黑马程序员出品的《黑马程序员JavaWeb开发教程,实现javaweb企业开发全流程(涵盖SpringMyBatisSpringMVCSpringBoot等)》,章节分布参考视频教程,为同样学习…

echarts 图表

echart快速上手 快速上手 - 使用手册 - Apache EChartshttps://echarts.apache.org/handbook/zh/get-started/

无线通信网

1.2.4G相邻信道间有干扰,5G相邻信道几乎无干扰 2.2.4G频段的优点是信号强,衰减小,穿墙强,覆盖距离远;缺点是带宽较窄,速度较慢,干扰较大。 5G频段的优点是带宽较宽,速度较快&#…

数据结构:哈希表 | C++中的set与map

上回说到,红黑树是提升了动态数据集中频繁插入或删除操作的性能。而哈希表(Hash Table),则是解决了传统数组或链表查找数据必须要遍历的缺点。 哈希表 哈希表的特点就是能够让数据通过哈希函数存到表中,哈希函数能够将数据处理为表中位置的索…

容器初始化Spring Boot项目原理,即web项目(war)包涉及相关类对比详解

以下是关于 SpringBootServletInitializer、ServletContainerInitializer、SpringServletContainerInitializer、WebApplicationInitializer 和 ServletInitializer 的对比详解及总结表格: 1. 核心对比详解 (1) SpringBootServletInitializer 作用: S…

[ctfshow web入门] web29

前置知识 eval: 把字符串按照 PHP 代码来执行,例如eval(“echo 1;”);这个函数拥有回显 system:使php程序执行系统命令,例如,system(“ls”);就是查看当前目录,这个拥有回显 preg_match:查找字符串是否匹配…

5.JVM-G1垃圾回收器

一、什么是G1 二、G1的三种垃圾回收方式 region默认2048 三、YGC的过程(Step1) 3.1相关代码 public class YGC1 {/*-Xmx128M -XX:UseG1GC -XX:PrintGCTimeStamps -XX:PrintGCDetails -XX:UnlockExperimentalVMOptions -XX:G1LogLevelfinest128m5% 60%6.4M 75M*/private stati…

Odrive0.5.1-FOC电机控制 arm_cos_f32.cpp arm_sin_f32.cpp代码实现(一)

01 查表法 在 our_arm_cos_f32 函数中,查表(Look-Up Table, LUT) 的核心是 预计算的正弦值表 sinTable_f32,通过巧妙利用余弦与正弦的相位关系实现快速余弦计算。以下是详细解析: 1. 查的是什么表? (1) 表内…

机械臂只有位置信息是否可以进行手眼标定?

平常我在做手眼标定时,一般都是通过OpenCV的cv::calibrateHandEye函数进行求解,需要输入多组不同的机械臂位姿。今天遇到了一款舵机机器人,只能获取位置,得不到姿态信息,想着那就把姿态都设为0,结果求不出来…

Python 数据分析01 环境搭建教程

Python 数据分析01 环境搭建教程 一、安装 Python 环境 访问 Python 官方网站 Python 官网,选择适合你操作系统的 Python 版本进行下载。下载完成后,运行安装程序。在安装过程中,建议选择“Add Python to PATH”选项,这样可以在…

使用 Visual Studio 2022 (VS2022) 编译 FreeCAD 1.0.0 的详细教程

一、环境准备 官方教程:在 Windows 上编译 - FreeCAD Documentation Windows 10/11(推荐) git vs2022 cmake 3.26.4 Doxygen1.12 二、获取源码与依赖 版本关系 打开Git Bash或CMD,执行以下命令 git clone --recurse-sub…

蓝桥杯单片机频率

long int Freq; unsigned int Timer_1000Ms; 加上 TMOD | 0x05; void Timer0Init(void) //0毫秒12.000MHz {AUXR & 0x7F; //定时器时钟12T模式TMOD & 0xF0; //设置定时器模式TMOD | 0x05;TL0 0x00; //设置定时初值TH0 0x00; //设置定时初值TF0 0; //清除TF0标…

遵循IEC 62304:构建安全可靠的医疗器械软件

目录 一、IEC 62304 标准概述 1. 标准定位与适用范围 二、核心内容与要求 1. 软件安全等级(Software Safety Classification) (1)分级标准 (2)分级依据 (3)验证要求 2. 软件…

互联网三高-数据库高并发之分库分表

1 数据库概述 1.1 数据库本身的瓶颈 ① 连接数 MySQL默认最大连接数为100,允许的最大连接数为16384 ② 单表海量数据查询性能 单表最好500w左右,最大警戒线800w ③ 单数据库并发压力问题 MySQL QPS:1500左右/秒 ④ 系统磁盘IO、CPU瓶颈 1.2 数…

UE5 在UE中创建骨骼动画

文章目录 创建动画的三种方式修改骨骼动画 创建动画的三种方式 方法一 打开一个已有的动画,左上角“创建资产/创建动画/参考姿势” 这将创建一个默认的A字形的骨骼,不建议这么做 方法二 打开一个已有的动画,左上角“创建资产/创建动画/当前…

[ctfshow web入门] web38

信息收集 过滤多了php和file if(isset($_GET[c])){$c $_GET[c];if(!preg_match("/flag|php|file/i", $c)){include($c);echo $flag;}}else{highlight_file(__FILE__); }解题 更多解法参考 [ctfshow web入门] web37 我们选个最简单的。但是因为php被过滤了我们改用…