惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
I
InfoQ
L
LangChain Blog
阮一峰的网络日志
阮一峰的网络日志
Y
Y Combinator Blog
博客园_首页
Martin Fowler
Martin Fowler
宝玉的分享
宝玉的分享
A
About on SuperTechFans
Apple Machine Learning Research
Apple Machine Learning Research
Vercel News
Vercel News
T
The Blog of Author Tim Ferriss
C
Check Point Blog
B
Blog RSS Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Engineering at Meta
Engineering at Meta
B
Blog
爱范儿
爱范儿
Stack Overflow Blog
Stack Overflow Blog
aimingoo的专栏
aimingoo的专栏
WordPress大学
WordPress大学
F
Fortinet All Blogs
月光博客
月光博客
GbyAI
GbyAI

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
在线访问目录,分享文件给朋友下载 - 少数派
2025-11-01 · via 少数派

什么是在线访问目录?其实就是通过网络去查看目录中有哪些文件,以及通过网络去获取这些文件。

在电脑或手机上查看文件,文件是存储在本地硬盘里的,我们是通过文件管理器去查看。相比之下,在线访问可以理解为用浏览器查看一个远处电脑上的文件,这就方便了我们查看和分享文件。

如果想和朋友分享文件,我们可以把文件放到电脑上已经能在线访问的目录中,这样其他人就可以通过网络去下载这些文件(不用再借助网盘、或者聊天软件中转,当然需要你的电脑能被那个人访问才行)。

但不仅仅是下载,如果你用浏览器打开过一些音频或者视频的网址,你会发现浏览器可能会直接播放它们,那是打开的是浏览器支持打开的格式,比如 mp3、mp4、PDF、纯文本文件 txt 等,如果访问这些文件的网址,浏览器都是会默认打开。当访问不支持的文件格式时,比如 mkv,浏览器默认会进行下载。

通过网络访问,也不仅仅只是能用浏览器去访问,其他程序只要有这样的功能,同样可以访问网络上的文件,而不只是本地的文件。就比如有一些播放器,给它一个网址,它能直接播放在线的视频。一个例子是: Syncplay 在线同步看电影 - 技焉洲 ,这篇文章能够诞生,正是因为我需要视频文件能通过网络访问,然后通过 Syncplay 和朋友一起在线播放

下面是能分享目录到网络上的一些程序和它们的使用方法。

Dufs

Dufs 是一个文件服务器,支持通过浏览器进行文件的上传、下载,有简单的权限控制,支持 WebDAV,是一个很不错的网络共享目录工具。

使用 Rust 开发,整个程序就是一个二进制,复制到机器上就能运行,非常方便又小巧,非常推荐。

Github: GitHub - sigoden/dufs: A file server that supports static serving, uploading, searching, accessing control, webdav...

安装流程: [[Dufs]] dufs 安装 - 技焉洲

dufs 虽然支持上传和删除,但用起来不方便,因此只推荐用于让文件能通过网络访问,不适合管理目录。

Nginx

通过 Nginx 在网络上分享文件应该是性能最好的方式之一了,但只支持查看,不能上传和删除,所以一切修改必须通过 SSH 连到服务器操作(如果是在服务器上的话),不太方便。

方法就是创建一个 server 配置,开启目录预览。

sudo vim /etc/nginx/sites-available/sharefile
server {
    listen       9050 default_server;
    listen       [::]:9050 default_server;
    server_name  _; # 能通过 ip 直接访问

    charset      utf-8;

    location / {
        root /home/vfly2/public; # 要在网络上开放的目录的根路径
        autoindex on;            # 显示目录
        autoindex_exact_size on; # 显示文件大小
        autoindex_localtime on;  # 显示文件时间
    }
}

启用配置

sudo ln -s /etc/nginx/sites-available/sharefile /etc/nginx/sites-enabled/sharefile

检查配置

sudo nginx -t

重启生效

sudo systemctl reload nginx

从网上找的图,因为没有再用 Nginx 分享目录了,可以看出来很简陋。


如果不是在 / 路径下共享,而是子路径下,用 root 可能就不合适了,另有一个 alias。

alias 和 root 有些许区别,当访问 /source2rss/filename.xml 时,如果用的是 root,实际会访问 /path/to/dir/source2rss/filename.xml ,也就是直接把路径复制到后面,使用 alias 时,实际访问的是 /path/to/dir/filename.xml

server {
    location /source2rss/ {
        alias /home/vfly2/source2RSS/rss/;
        autoindex on;            # 显示目录
        autoindex_format html;   # 以标准的 HTML 表格形式展示目录内容
        autoindex_exact_size off; # 不显示文件大小
        autoindex_localtime on;  # 显示文件时间
    }
}

如上,我希望访问 /source2rss/filename.xml 时,获得的是 /home/vfly2/source2RSS/rss/filename.xml 文件,若是用了 root,将会获得 /home/vfly2/source2RSS/rss//source2rss/filename.xml 这个文件,此文件根本不存在,就会显示 404。

增加访问密码

使用到 Nginx 的 auth_basic 模块。

首先,创建一个密码文件(例如 /etc/nginx/.htpasswd),并使用 htpasswd 命令添加用户和密码。如果你的系统中没有 htpasswd 命令,可以通过安装 apache2-utils 来获取它。

sudo apt install apache2-utils

创建密码文件

sudo htpasswd -c /etc/nginx/.htpasswd ahfei

运行这个命令后,系统会提示你输入密码。之后 .htpasswd 文件就会被创建,其中包含用户名和加密后的密码。

在配置文件中添加下面两行即可

        auth_basic "Restricted Content";
        auth_basic_user_file /etc/nginx/.htpasswd;

此时访问网站时,浏览器应该会提示输入用户名和密码。

美化页面

默认的页面非常简陋,实际上在启用了目录浏览的情况下,通过 Web 服务器访问一个没有 index.html 或类似首页文件的目录时,服务器通常会显示一个非常简陋的文件列表。

有一些方法能把这个默认列表替换成一个美观、功能丰富的界面。比如 lrsjng/h5ai: HTTP web server index for Apache httpd, lighttpd and nginx. ,没用过,感兴趣可以研究。

copyparty

GitHub: 9001/copyparty: Portable file server with accelerated resumable uploads, dedup, WebDAV, FTP, TFTP, zeroconf, media indexer, thumbnails++ all in one file, no deps

没用过,不过看它的功能,可以胜任文件管理器。

使用 Python 开发,支持全平台,包括安卓、iOS,但是移动平台都需要安装终端模拟器才能运行。

界面还行,支持中文。

Filestash

GitHub: mickael-kerjean/filestash: :file_folder: The Dropbox like web client for SFTP, S3, FTP, WebDAV, Git, Minio, LDAP, CalDAV, CardDAV, Mysql, Backblaze, ...

没用过,但是看介绍很牛,以后有空用用

其他类似项目

Filebrowser:filebrowser/filebrowser: 📂 Web File Browser (github.com) ,用过,如果想在网页上管理目录,可以使用。

ZFile:zfile-dev/zfile: 在线云盘、网盘、OneDrive、云存储、私有云、对象存储、h5ai、上传、下载,功能很多,但是是用 Java 开发的,对于本文的需求来说,没必要。

Simple http server: TheWaWaR/simple-http-server: Simple http server in Rust (Windows/Mac/Linux) ,实际上这是一个 Web Server,和 Nginx 是同一种东西,只不过只有最基本的功能,因此自然也可以预览目录。使用 Rust 开发,支持 Windows/Mac/Linux 平台。没用过,看介绍不如直接用 Nginx。


原文链接: https://yanh.tech/2025/11/online-access-catalog/