标签 文件服务 下的文章

曾经想通过网络共享你的文件或项目,但不知道怎么做?别担心!这里有一个名为 serve 的简单实用程序,可以通过网络即时共享你的文件。这个简单的实用程序会立即将你的系统变成一个静态文件服务器,允许你通过网络提供文件。你可以从任何设备访问这些文件,而不用担心它们的操作系统是什么。你所需的只是一个 Web 浏览器。这个实用程序还可以用来服务静态网站。它以前称为 “list” 或 “micri-list”,但现在名称已改为 “serve”(提供),这更适合这个实用程序的目的。

使用 Serve 来设置一个静态文件服务器

要安装 serve,首先你需要安装 NodeJS 和 NPM。参考以下链接在 Linux 中安装 NodeJS 和 NPM。

NodeJS 和 NPM 安装完成后,运行以下命令来安装 serve:

$ npm install -g serve

完成!现在是时候 serve 文件或文件夹了。

使用 serve 的典型语法是:

$ serve [options] <path-to-files-or-folders>

提供特定文件或文件夹

例如,让我们共享 Documents 目录里的内容。为此,运行:

$ serve Documents/

示例输出:

正如你在上图中看到的,给定目录的内容已通过两个 URL 提供网络支持。

要从本地系统访问内容,你只需打开 Web 浏览器,输入 URL http://localhost:5000/

serve 实用程序以简单的布局显示给定目录的内容。你可以下载(右键单击文件并选择“将链接另存为…”)或只在浏览器中查看它们。

如果想要在浏览器中自动打开本地地址,使用 -o 选项。

$ serve -o Documents/

运行上述命令后,serve 实用程序将自动打开 Web 浏览器并显示共享项的内容。

同样,要通过网络从远程系统访问共享目录,可以在浏览器地址栏中输入 http://192.168.43.192:5000。用你系统的 IP 替换 192.168.43.192。

通过不同的端口提供内容

你可能已经注意到,默认情况下,serve 实用程序使用端口 5000。因此,确保防火墙或路由器中允许使用端口 5000。如果由于某种原因被阻止,你可以使用 -p 选项使用不同端口来提供内容。

$ serve -p 1234 Documents/

上面的命令将通过端口 1234 提供 Documents 目录的内容。

要提供文件而不是文件夹,只需给它完整的路径,如下所示。

$ serve Documents/Papers/notes.txt

只要知道路径,网络上的任何用户都可以访问共享目录的内容。

提供整个 $HOME 目录

打开终端输入

$ serve

这将通过网络共享整个 $HOME 目录的内容。

要停止共享,按下 CTRL+C

提供选定的文件或文件夹

你可能不想共享所有文件或目录,只想共享其中的一些。你可以使用 -i 选项排除文件或目录。

$ serve -i Downloads/

以上命令将提供整个文件系统,除了 Downloads 目录。

仅在本地主机上提供内容

有时,你只想在本地系统而不是整个网络上提供内容。为此,使用 -l 标志,如下所示:

$ serve -l Documents/

此命令会仅在本地提供 Documents 目录。

当你在共享服务器上工作时,这可能会很有用。系统中的所有用户都可以访问共享,但远程用户不能。

使用 SSL 提供内容

由于我们通过本地网络提供内容,因此我们不需要使用 SSL。但是,serve 实用程序可以使用 -ssl 选项来使用 SSL 共享内容。

$ serve --ssl Documents/

要通过 Web 浏览器访问共享,输入 https://localhost:5000https://ip:5000

通过身份验证提供内容

在上面的所有示例中,我们在没有任何身份验证的情况下提供内容,所以网络上的任何人都可以在没有任何身份验证的情况下访问共享内容。你可能会觉得应该使用用户名和密码访问某些内容。

为此,使用:

$ SERVE_USER=ostechnix SERVE_PASSWORD=123456 serve --auth

现在用户需要输入用户名(即 ostechnix)和密码(123456)来访问共享。(LCTT 译注:123456 是非常不好的密码,仅在实验情况下使用)

serve 实用程序还有一些其它功能,例如禁用 Gzip 压缩,设置 CORS 头以允许来自任河源的请求,防止自动复制地址到剪贴板等。通过以下命令,你可以阅读完整的帮助部分。

$ serve help

好了,这就是全部了。希望这可以帮助到你。更多好东西要来了,敬请关注!

共勉!

资源:


via: https://www.ostechnix.com/how-to-setup-static-file-server-instantly/

作者:SK 选题:lujun9972 译者:MjSeven 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

如今,我有很多方法来通过 Web 浏览器为局域网中的其他系统提供单个文件或整个目录的访问。我在我的 Ubuntu 测试机上测试了这些方法,它们如下面描述的那样运行正常。如果你想知道如何在类 Unix 操作系统中通过 HTTP 轻松快速地提供文件和文件夹的访问服务,以下方法之一肯定会有所帮助。

在 Linux 中通过 HTTP 访问文件和文件夹

免责声明:此处给出的所有方法适用于安全的局域网。由于这些方法没有任何安全机制,因此不建议在生产环境中使用它们。你注意了!

方法 1 - 使用 simpleHTTPserver(Python)

我们写了一篇简要的指南来设置一个简单的 http 服务器,以便在以下链接中即时共享文件和目录。如果你有一个安装了 Python 的系统,这个方法非常方便。

方法 2 - 使用 Quickserve(Python)

此方法针对 Arch Linux 及其衍生版。有关详细信息,请查看下面的链接。

方法 3 - 使用 Ruby

在此方法中,我们使用 Ruby 在类 Unix 系统中通过 HTTP 提供文件和文件夹访问。按照以下链接中的说明安装 Ruby 和 Rails。

安装 Ruby 后,进入要通过网络共享的目录,例如 ostechnix:

$ cd ostechnix

并运行以下命令:

$ ruby -run -ehttpd . -p8000
[2018-08-10 16:02:55] INFO WEBrick 1.4.2
[2018-08-10 16:02:55] INFO ruby 2.5.1 (2018-03-29) [x86_64-linux]
[2018-08-10 16:02:55] INFO WEBrick::HTTPServer#start: pid=5859 port=8000

确保在路由器或防火墙中打开端口 8000。如果该端口已被其他一些服务使用,那么请使用不同的端口。

现在你可以使用 URL 从任何远程系统访问此文件夹的内容 - http:// <ip-address>:8000

要停止共享,请按 CTRL+C

方法 4 - 使用 Http-server(NodeJS)

Http-server 是一个用 NodeJS 编写的简单的可用于生产环境的命令行 http 服务器。它不需要配置,可用于通过 Web 浏览器即时共享文件和目录。

按如下所述安装 NodeJS。

安装 NodeJS 后,运行以下命令安装 http-server。

$ npm install -g http-server

现在进入任何目录并通过 HTTP 共享其内容,如下所示。

$ cd ostechnix

$ http-server -p 8000
Starting up http-server, serving ./
Available on:
 http://127.0.0.1:8000
 http://192.168.225.24:8000
 http://192.168.225.20:8000
Hit CTRL-C to stop the server

现在你可以使用 URL 从任何远程系统访问此文件夹的内容 - http:// <ip-address>:8000

要停止共享,请按 CTRL+C

方法 5 - 使用 Miniserve(Rust)

Miniserve 是另一个命令行程序,它允许你通过 HTTP 快速访问文件。它是一个非常快速、易于使用的跨平台程序,它用 Rust 编程语言编写。与上面的程序/方法不同,它提供身份验证支持,因此你可以为共享设置用户名和密码。

按下面的链接在 Linux 系统中安装 Rust。

安装 Rust 后,运行以下命令安装 miniserve:

$ cargo install miniserve

或者,你可以在其发布页下载二进制文件并使其可执行。

$ chmod +x miniserve-linux

然后,你可以使用命令运行它(假设 miniserve 二进制文件下载到当前的工作目录中):

$ ./miniserve-linux <path-to-share>

用法

要提供目录访问:

$ miniserve <path-to-directory>

示例:

$ miniserve /home/sk/ostechnix/
miniserve v0.2.0
Serving path /home/sk/ostechnix at http://[::]:8080, http://localhost:8080
Quit by pressing CTRL-C

现在,你可以在本地系统使用 URL – http://localhost:8080 访问共享,或者在远程系统使用 URL – http://<ip-address>:8080 访问。

要提供单个文件访问:

$ miniserve <path-to-file>

示例:

$ miniserve ostechnix/file.txt

带用户名和密码提供文件/文件夹访问:

$ miniserve --auth joe:123 <path-to-share>

绑定到多个接口:

$ miniserve -i 192.168.225.1 -i 10.10.0.1 -i ::1 -- <path-to-share>

如你所见,我只给出了 5 种方法。但是,本指南末尾附带的链接中还提供了几种方法。也去测试一下它们。此外,收藏并时不时重新访问它来检查将来是否有新的方法。

今天就是这些。希望这篇文章有用。还有更多的好东西。敬请期待!

干杯!

资源


via: https://www.ostechnix.com/how-to-quickly-serve-files-and-folders-over-http-in-linux/

作者:SK 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出