当前位置: 首页 > article >正文

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

一个基于 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:latestcontainer_name: cloud-saverports:- "8008:8008"volumes:- /your/local/path/data:/app/data- /your/local/path/config:/app/configrestart: unless-stopped

测试版:

version: "3"
services:cloudsaver:image: jiangrui1994/cloudsaver:testcontainer_name: cloud-saverports:- "8008:8008"volumes:- /your/local/path/data:/app/data- /your/local/path/config:/app/configrestart: 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. 所有搜索到的资源均来自第三方,本项目不对其真实性、合法性做出任何保证

相关文章:

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

一个基于 Vue 3 Express 的网盘资源搜索与转存工具,支持响应式布局,移动端与PC完美适配,可通过 Docker 一键部署。 功能特性 🔍 多源资源搜索 支持多个资源订阅源搜索支持关键词搜索与资源链接解析支持豆瓣热门榜单展示 &#…...

OL9设置oracle23ai数据库开机自启动

1、设置oracle用户的环境变量信息 [oracleOracleLinuxR9U5 ~]$vim ~/.bash_profile # Set Oracle environment variables for Oracle 23c AI export ORACLE_HOME/opt/oracle/product/23ai/dbhomeFree export ORACLE_SIDFREE export PATH$ORACLE_HOME/bin:$PATH export LD_LIB…...

【操作系统学习篇-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 退…...

【Linux C】简单bash设计

主要功能 循环提示用户输入命令(minibash$)。创建子进程(fork())执行命令(execlp)。父进程等待子进程结束(waitpid)。关键问题 参数处理缺失:scanf("%s", buf)…...

安全是基石

“安全是基石”这句话强调了安全在个人、企业、社会等各个层面中的基础性和不可替代的重要性。无论是物理安全、网络安全、数据安全,还是生产安全、公共安全,都是保障稳定发展的前提。以下是不同领域中“安全”作为基石的体现: 1. 个人安全 基…...

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),则是解决了传统数组或链表查找数据必须要遍历的缺点。 哈希表 哈希表的特点就是能够让数据通过哈希函数存到表中,哈希函数能够将数据处理为表中位置的索…...

随笔 20250413 Elasticsearch 的 term 查询

你这个问题非常经典,来自于 Elasticsearch 的 term 查询是 ✅精确匹配(case-sensitive,大小写敏感)! 🧨 为什么查不到 "World"? 你的查询语句是: GET /movie/_search {&…...

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

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

Python创意:AI图像生成

1. 基本概念 AI 图像生成通常基于以下几种方法: 一.生成对抗网络 (GAN) 生成对抗网络(GAN,Generative Adversarial Network)是一种深度学习框架,主要用于生成新的、类似于训练数据的样本。自2014年由Ian Goodfellow及…...

[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…...

Java高性能并发利器-VarHandle

1. 什么是 VarHandle?​​ VarHandle 是 Java 9 引入的类,用于对变量(对象字段、数组元素、静态变量等)进行低级别、高性能的原子操作(如 CAS、原子读写)。它是 java.util.concurrent.atomic 和 sun.misc.…...

蓝桥杯单片机频率

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标…...

【Qt】【第三方库】spdlog日志模块的使用

版本 spdlog版本:1.5.0 采用1.5.0版本主要基于以下考虑:兼容Qt5.9.X版本和兼容C11。 spdlog 1.5.0下载地址:https://github.com/gabime/spdlog/releases/tag/v1.5.0 摘要 在Qt应用程序开发中,良好的日志系统至关重要。本文将介…...

elementui table禁用全选,一次限制勾选一项。

1、设置属性&#xff1a;selection-change“handleSelectionChange” <el-table:data"taskList"ref"tableDataRefs"selection-change"handleSelectionChange":header-cell-class-name"hideAllCheckbox">function handleSelecti…...

3.1多状态专题:LeetCode面试题17.16 按摩师

动态规划解决按摩师预约问题——以LeetCode面试题17.16为例 1.题目链接 LeetCode面试题17.16 按摩师 2.题目描述 一个有名的按摩师收到一系列的预约请求&#xff0c;每个预约都可以选择接受或不接受。但相邻的预约不能同时接受。给定一个包含各预约时长的数组 nums&#xf…...

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

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

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

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

UE5 在UE中创建骨骼动画

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

Day-01 前端 Web - HTMLCSS

目录 一、HTML 基础 1. HTML 简介 2. HTML 基本结构 3. 常用 HTML 标签 二、CSS 基础 1. CSS 简介 2. CSS 引入方式 3. 常用 CSS 选择器 4. 常用 CSS 属性 一、HTML 基础 1. HTML 简介 HTML&#xff08;HyperText Markup Language&#xff09;即超文本标记语言&…...