Droppy教程 | 轻量文件共享

文件共享成为了日常工作的重要组成部分。特别是对于那些需要快速、高效分享大文件的人来说,拥有一个简单可靠,且易于管理的平台至关重要。
项目地址:https://github.com/droppyjs/droppy

一、测试环境

uname -i
# x86_64
docker -v
# Docker version 24.0.2, build cb74dfc
docker-compose -v
# Docker Compose version v2.22.0

二、Docker配置Droppy

version: '3'
services:droppy:container_name: droppy-fileserverimage: silverwind/droppyports:- "8989:8989"volumes:- ./files:/files- ./config:/configrestart: unless-stopped

在这个配置中,文件将存储在当前目录下的 files 文件夹中,配置信息则保存在 config 文件夹中。

文件说明:

  • files 文件夹:存储文件,所有用户共享这一文件夹
  • config/db.json:存储 Droppy 的配置信息,包括用户信息、权限等
  • config/config.json:存储服务启动的配置信息,包括端口、访问限制等

三、Nginx 配置

server {listen 80;server_name fileshare.local.codejerry.cn;# return 301 https://$host$request_uri;location / {proxy_pass http://127.0.0.1:8989;proxy_set_header Host $host;proxy_set_header Upgrade $http_upgrade; # required for ws!proxy_set_header Connection $http_connection;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Real-Port $remote_port;proxy_http_version 1.1;proxy_cache off;proxy_buffering off;proxy_redirect off;proxy_request_buffering off;proxy_ignore_client_abort on;proxy_connect_timeout 7200;proxy_read_timeout 7200;proxy_send_timeout 7200;client_max_body_size 0;}
}server {listen 443 ssl;server_name fileshare.local.codejerry.cn;ssl_certificate /etc/letsencrypt/live/local.codejerry.cn/fullchain.pem;ssl_certificate_key /etc/letsencrypt/live/local.codejerry.cn/privkey.pem;location / {proxy_pass http://127.0.0.1:8989;proxy_set_header Host $host;proxy_set_header Upgrade $http_upgrade; # required for ws!proxy_set_header Connection $http_connection;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Real-Port $remote_port;proxy_http_version 1.1;proxy_cache off;proxy_buffering off;proxy_redirect off;proxy_request_buffering off;proxy_ignore_client_abort on;proxy_connect_timeout 7200;proxy_read_timeout 7200;proxy_send_timeout 7200;client_max_body_size 0;}
}

参数说明:
请求头设置:

  • proxy_set_header Host $host;:将请求头中的 Host 字段设置为客户端请求的 Host
  • proxy_set_header Upgrade $http_upgrade;:这个指令对于 WebSocket 支持是必须的。如果 Droppy 使用了 WebSocket,这将确保升级请求被正确传递
  • proxy_set_header Connection $http_connection;:传递正确的 Connection 头,这对于一些特殊协议(如 WebSocket)的连接是必需的
  • proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;:将用户的真实 IP 地址传递给 Droppy,这在日志和一些网络策略中非常有用
  • proxy_set_header X-Forwarded-Proto $scheme;:传递原始请求的协议(如 http 或 https)
  • proxy_set_header X-Real-IP $remote_addr; 和 proxy_set_header X-Real-Port $remote_port;:分别传递用户的 IP 地址和端口

其他设置:

  • proxy_http_version 1.1;:设置 HTTP 协议版本为 1.1
  • proxy_cache off;、proxy_buffering off;、proxy_request_buffering off;:这些指令禁用了代理层面的缓存和缓冲,有助于减少内存使用,并允许大文件流式传输
  • proxy_redirect off;:禁用代理重定向,避免修改后端服务器的重定向
  • proxy_ignore_client_abort on;:即使客户端中断连接,也会继续向后端 Droppy 服务器发送请求
  • proxy_connect_timeout 7200;、proxy_read_timeout 7200;、proxy_send_timeout 7200;:设置连接、读取和发送超时时间,这里设置为 7200 秒,以便支持长时间连接
  • client_max_body_size 0;:这里设置为 0,表示取消上传文件大小的限制

ssl证书的获取可以参考 Lets-Encrypt配置泛域名证书

四、使用

浏览器输入fileshare.local.codejerry.cn访问droppy。首次访问,输入用户名和密码即可,默认为管理员账号。登录后可以新增用户,新用户给普通权限就行,新用户就可以通过这个账号和密码传文件了。

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

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

相关文章

年底个人总结

年底个人总结 前言:又到了年底,在游戏行业工作了接近10年,想想也应该把自己做过的东西做一个总结。 从14年在北京毕业,懵懂的我在机缘巧合下遇到了陈g,我行业的领路人,在他的带领下我进入到了游戏行业。 当…

[office] 在往Excel中录入数据时 #微信#学习方法#职场发展

在往Excel中录入数据时 在往Excel中录入数据时,有时会遇到大量的重复数据,比如有这么一个工作表,第一列显示任务名,第二列显示任务执行者,第三列显示执行者的性别,其中任务执行者为固定的几个人交替执行&am…

Bootstrap5 导航组件和面包屑

Bootstrap5 导航组件和面包屑 Bootstrap5 提供了一种简单快捷的方法来创建基本导航,它提供了非常灵活和优雅的选项卡和Pills等组件。 Bootstrap5 的所有导航组件,包括选项卡和Pills,都通过基本的 .nav 类共享相同的基本标记和样式。 使用 B…

深入探究:JSONCPP库的使用与原理解析

君子不器 🚀JsonCPP开源项目直达链接 文章目录 简介Json示例小结 JsoncppJson::Value序列化Json::Writer 类Json::FastWriter 类Json::StyledWriter 类Json::StreamWriter 类Json::StreamWriterBuilder 类示例 反序列化Json::Reader 类Json::CharReader 类Json::Ch…

【计算机二级考试C语言】C可变参数

C 可变参数 有时,您可能会碰到这样的情况,您希望函数带有可变数量的参数,而不是预定义数量的参数。 C 语言为这种情况提供了一个解决方案,它允许您定义一个函数,能根据具体的需求接受可变数量的参数。 声明方式为: int func_name(int arg1, ...); 其中,省略号 ... …

linux一键换源

使用方法 - LinuxMirrors 使用方法 一键执行命令# 中国大陆&#xff08;默认&#xff09; 海外地区 bash <(curl -sSL https://linuxmirrors.cn/main.sh)-----------------------------------| ⡇ ⠄ ⣀⡀ ⡀⢀ ⡀⢀ ⡷⢾ ⠄ ⡀⣀ ⡀⣀ ⢀⡀ ⡀⣀ ⢀⣀ || ⠧⠤ ⠇ ⠇⠸ …

2024年考PMP还有什么用?

PMP 是项目管理专业人士资格认证的意思&#xff0c;也是项目管理领域通用的证书&#xff0c; 做项目的基本都会去考。 要说 PMP 有啥作用&#xff1f; 个人感觉 PMP 证书更多的是跳槽、转行的敲门砖的作用&#xff0c;因为现在很多公司都要 PMP 证书&#xff0c;有了可以加分…

containerd中文翻译系列(五)客户端选项

containerd 客户端的构建是为了方便用户进行扩展。 我们的目标是&#xff0c;调用的执行流程在不同的实现中保持不变&#xff0c;同时编写 Opts 来扩展功能。 为了实现这一目标&#xff0c;我们依赖于 Go 中的 Opts 模式。 方法调用 对于客户端软件包中的许多函数和方法&…

工厂方法模式(Factory Method Pattern)

原文地址:https://jaune162.blog/design-pattern/factory-method-pattern/ 概述 工厂方法模式(Factory Method Pattern)是一个对象创建型模式。 定义一个用于创建对象的接口,让子类决定实例化哪一个类。 Factory Method使一个类的实例化延迟到其子类。 – 《设计模式:可复…

SpringBoot 拦截器Intercepto的创建与基本使用

介绍 拦截器和过滤器的功能都差不多&#xff0c;拦截器是SpringBoot的&#xff0c;而且过滤器是Servlet的 SpringBoot过滤器 拦截器-过滤器 执行顺序 发起请求-》过滤器-》拦截器-》接口 创建拦截器 实现HandlerInterceptor 的接口&#xff0c;并且实现他都三个方法 preHan…

Leetcode21:合并两个有序链表

一、题目描述 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4]输入&#xff1a;l1 [], l2 [] 输出&#xff1a;[]输入&#…

【芯片设计- RTL 数字逻辑设计入门 8 -- 四选一多路器】

文章目录 四选一多路输出器verilog case 语句verilog 代码testbench 代码仿真波形 问题小结 四选一多路输出器 制作一个四选一的多路选择器&#xff0c;要求输出定义上为线网类型 状态转换&#xff1a; d0 00 d1 01 d2 10 d3 11verilog case 语句 case(express…

亚马逊认证考试系列 - 知识点 - 安全组介绍

第一部分&#xff1a;AWS简介 Amazon Web Services&#xff08;AWS&#xff09;是全球领先的云计算服务提供商&#xff0c;为个人、企业和政府机构提供广泛的云服务解决方案。AWS的服务包括计算、存储、数据库、分析、机器学习、人工智能、物联网、安全和企业应用等领域。AW…

每日一题 力扣LCP30.魔塔游戏

题目描述&#xff1a; 小扣当前位于魔塔游戏第一层&#xff0c;共有 N 个房间&#xff0c;编号为 0 ~ N-1。每个房间的补血道具/怪物对于血量影响记于数组 nums&#xff0c;其中正数表示道具补血数值&#xff0c;即血量增加对应数值&#xff1b;负数表示怪物造成伤害值&#x…

【Java 数据结构】反射

反射 1 定义2 用途(了解)3 反射基本信息4 反射相关的类&#xff08;重要&#xff09;4.1 Class类(反射机制的起源 )4.1.1 Class类中的相关方法(方法的使用方法在后边的示例当中) 4.2 反射示例4.2.1 获得Class对象的三种方式4.2.2 反射的使用 5、反射优点和缺点 1 定义 Java的反…

【openwrt】MT7981 5G WiFi MAC地址不生效问题分析及解决方案

问题描述 MT7981 默认sdk 5G MAC地址根据2.4G MAC地址随机生成,我们写到Factory区域的值不生效 问题分析 查看EEPROM MAC位置 查看MTK EEPROM文档MT7981_EEPROM_Content_Introduction_V10_20211207.pdf可以看到EEPROM里面有两个位置可以存放MAC,0x04~0x09 和0x0a~0x0f 查看…

工具类中获取Bean的实例

一般情况下&#xff0c;我们直接在Component标注的类&#xff08;Bean&#xff09;下就能直接通过Autowired、Resource直接实现自动注入获取到Bean的实例&#xff0c;如下&#xff1a; Service Transactional(readOnly true) public class MyReadServiceImpl {Resourceprivat…

Simulink|光伏阵列模拟多类故障(开路/短路/阴影遮挡/老化)

目录 主要内容 模型研究 1.正常模型 2.断路故障 3.短路故障 4.阴影遮挡 5.老化模型 结果一览 1.U-I曲线 2.P-V曲线 下载链接 主要内容 该模型为光伏阵列模拟故障情况simulink模型&#xff0c;程序实现了多种故障方式下的光伏阵列输出功率-电压-电流关系特…

类型化数组

数字存储前置知识 计算机必须使用固定的位数来存储数字&#xff0c;无论存储的数字是大是小&#xff0c;在内存中占用的空间是固定的n位的无符号整数能表示的个数是2^n个 取值范围是0~2^n-1 举例&#xff1a;000 001 111 表示[0-8]n位的有符号整数能表示的个数是2^n个 取值范围…

通义千问上线春节新应用,AI帮你免费拍全家福

2月5日&#xff0c;春节将至年味渐浓&#xff0c;阿里云通义千问APP上线多项免费新应用&#xff0c;涵盖全家福、拜新年、万物成龙等图像生成的新玩法&#xff0c;共提供超300套照片模板&#xff0c;用户上传照片即可生成全家福、团圆照、拜年照、千里江山主题照&#xff1b;此…