Written by Sk December 8, 2020
本指南将会教你如何使用命令行或者Web浏览器来轻易地、安全地通过管道(Piping)服务器在任何设备之间传输文件。您可以通过管道服务器无限制地传输任何类型的数据。它可以是一个目录、一个文本文件、一个音频、视频或任何东西。此外,它与你使用的操作系统或设备无关。与管道服务器共享文件是非常简单和直接的。
管道服务器是一种免费的Web服务,用于通过HTTP/HTTPS来在任何设备之间共享任何形式的数据。数据可以通过curl程序从终端传输,也可以通过Web UI传输。无需注册! 你甚至不需要安装任何额外的软件。你所需要的就是curl命令行程序或者一个现代的Web浏览器,而大多数操作系统都预装了这些。
管道服务器通过端到端加密安全地传输数据。它从不把你的数据存储在任何数据中心上。管道服务器使用点对点方法从一个设备到另一个设备进行数据的中继传输。
它能够同时在多个设备之间共享数据。只需从一个设备发送一个文件,并从多个设备接收它。如果文件或文件夹太大而无法共享,只需压缩并发送即可。
开发者还创建了许多能够使用管道服务器的应用程序和脚本:
上述应用程序的链接可以在管道服务器的GitHub存储库中获得。
通过管道服务器在多个设备之间共享文件是非常容易的!首先,我们将看到如何使用curl程序在两个系统之间共享数据。
例如,我将在我的Fedora系统上共享一个名为ostechnix.txt的文本文件。然后从我的Ubuntu系统接受该文件。
在发送方节点(即Fedora)上,输入以下命令来共享文件:
$ curl -T ostechnix.txt https://ppng.io/ostechnix
现在转到接收节点(即Ubuntu),使用命令下载文件:
$ curl https://ppng.io/ostechnix > ostechnix.txt
就是这么简单。该文件将下载到当前目录中。
在linux中使用管道服务器在任何设备之间传输文件
在这里, https://ppng.io/ostechnix是文件上传URL。您可以在此URL的末尾使用不同的秘密路径。例如,秘密路径可以是/mymessage或/text123或任何您想要指定的内容。指定相同路径的发送方和接收方可以进行文件的传输。发送方和接收方都可以率先开始传输。第一个会等待另一个。
您还可以通过管道传输文本文件的内容,然后共享它。在发送节点上,运行以下命令来共享一个名为ostechnix.txt的文本文件:
$ cat ostechnix.txt | curl -T - https://ppng.io/ostechnix
进入接收节点,使用命令获取上面的文本文件:
$ curl https://ppng.io/ostechnix > ostechnix.txt
接收方在自己的系统中运行上述命令后,共享文件就会开始下载到自己的系统中。
下面是示例输出。我从Ubuntu系统为Fedora系统共享了ostechnix.txt文件。
使用管道服务器的在任何设备之间传输文件
如果您想要共享一个目录,只需对它进行归档或压缩并共享它。
使用tar归档一个目录并使用管道服务器共享它:
$ tar zfcp - ~/mydirectory | curl -T - https://ppng.io/ostechnix
使用zip压缩一个目录并使用管道服务器共享它:
$ zip -q -r - ~/mydirctory | curl -T - https://ppng.io/ostechnix
如前所述,您可以发送任何类型的数据,甚至文本消息。让我们在两个系统之间共享一条短信。
在发送节点上,键入以下内容:
$ echo "Welcome to OSTechNix" | curl -T - https://ppng.io/ostechnix
在接收节点上,您可以通过输入以下命令来获取此消息:
$ curl https://ppng.io/ostechnix
在系统之间使用管道服务器共享文本信息
很简单,不是吗? 使用它在系统之间共享url和剪贴板时非常方便。
如果你想要添加文本信息到一个文件,只需要使用重定向:
$ curl https://ppng.io/ostechnix > ostechnix.txt
上面的命令将文本保存在一个文本文件中,而不是在标准输出中打印。
要使用管道服务器加密并发送文件,运行:
$ cat ostechnix.txt | openssl aes-256-cbc | curl -T - https://ppng.io/ostechnix
解密及下载文件:
$ curl https://ppng.io/ostechnix | openssl aes-256-cbc -d
在上述情况下,我们只将文件共享给一个收件人。一旦接收完成,下载链接就会过期,所以你无法从任何其他设备下载相同的文件。
如果有人试图访问该文件,他们将得到以下消息:
$ curl https://ppng.io/ostechnix
[ERROR] The number of receivers has reached limits.
如果你想把文件传送给更多的接收者,例如5个,需要在URL链接的结尾使用?n=5参数,如下所示:
$ cat ostechnix.txt | curl -T - https://ppng.io/ostechnix?n=5
现在,5个收件人可以使用以下URL访问上述文件(或在一个系统中访问5次):
$ curl https://ppng.io/ostechnix?n=5
请注意网址。您必须提供发送方节点中提到的确切URL。当文件被所有接收者接收后,你会在发送者节点看到一条成功的消息:
[INFO] Waiting for 5 receiver(s)...
[INFO] A receiver was connected.
[INFO] A receiver was connected.
[INFO] Start sending to 5 receiver(s)!
[INFO] Sent successfully!
[INFO] All receiver(s) was/were received successfully.
如果你不想通过终端接收文件,只需复制下载URL并粘贴到你的浏览器地址栏来下载它。
通过web浏览器使用管道服务器传输文件
如前所述,您可以在类Unix操作系统中通过终端或Web浏览器发送和接收文件。如果您不习惯使用命令行选项,或者您正在使用windows等其他操作系统,您可以使用管道服务器的web UI传输文件。管道服务器有为那些喜欢GUI而不是命令行的人提供了以下两个接口:
打开以上任何一个链接,选择你想要分享的文件,输入秘密路径,点击发送按钮。如果使用第二个UI(即piping-ui),则有一个对文件进行密码保护的选项。现在将生成一个文件上传URL。您可以使用此URL从任何系统下载该文件。
从管道服务器Web UI传输文件
要下载该文件,只需在管道服务器Web界面的GET选项卡中粘贴您在前面步骤中复制的URL。您可能需要输入密码来解锁和下载文件。
目前,管道服务器开发人员维护了一些公共服务器来传输文件。您还可以使用Docker或使用可移植的可执行文件来自行托管该服务。
如果你喜欢使用Docker,运行以下命令来运行一个本地管道服务器实例:
$ docker run -p 8080:8080 nwtgck/piping-server
将Web浏览器指向http://localhost:8080以访问管道服务器。
如果您喜欢使用可移植的可执行文件,请从官方[release页面]下载其最新版本:
$ wget https://github.com/nwtgck/piping-server-pkg/releases/download/v1.1.0/piping-server-linux
赋予可执行权限:
$ chmod +x piping-server-linux
并使用命令运行管道服务器本地实例:
$ ./piping-server-linux
现在可以通过URLhttp://ip-address:8080访问管道服务器的Web UI。
自主托管的管道服务器
还有几种在本地机器上部署管道服务器的方法。请参考项目的GitHub链接了解如何操作。
要显示管道服务器帮助信息,请运行:
$ curl https://ppng.io/help
本文译自: Transfer Files Between Any Devices Using Piping Server
作者: Sk
译者: 生材有道
校对: 开源科学计算
原文及本文遵循: [CC BY-NC 4.0协议]