通过扫描二维码在计算机和移动设备之间传输文件

计算机和移动设备之间的文件传输可以通过各种方法和使用各种协议来完成。 今天,我们将看到一种全新的、不同的方法。 本指南介绍如何通过扫描二维码在计算机和移动设备之间传输文件。 是的,你没有看错! 打招呼 qrcp, 原名 Qr-文件传输,一个简单的命令行文件传输应用程序,用于在 Linux 系统和手机之间通过扫描二维码通过 WiFi 发送和接收文件,而无需离开终端。

发送文件时,Qrcp 会在一个随机端口上将一个 Web 服务器绑定到您的 WiFi 网络接口卡的地址,并为其创建一个处理程序。 传输完成后,默认处理程序将提供内容并退出程序。 同样,在接收文件时, qrcp 提供上传页面并处理传输。

Qrcp 是一个免费的开源程序 编程语言,并在下发布 麻省理工学院 执照。

在 Linux 上安装 Qrcp

Qrcp 可以通过多种方式安装。 使用以下任一方法在 Linux 中安装 Qrcp。

使用 Golang 安装 Qrcp

首先,按照以下链接中的说明在您的 Linux 系统中安装 Go 编程语言。

  • 如何在 Linux 中安装 Go 语言

安装 Golang 后,运行以下命令在你的 linux 系统中安装 Qrcp:

$ go get github.com/claudiodangelis/qrcp

从二进制文件安装 Qrcp

从 下载最新的 Qrcp 存档文件 发布页面. 在编写本指南时,最新版本是 0.7.0.

$ wget https://github.com/claudiodangelis/qrcp/releases/download/0.7.0/qrcp_0.7.0_linux_x86_64.tar.gz

使用 commad 提取下载的存档:

$ tar xf qrcp_0.7.0_linux_x86_64.tar.gz

将二进制文件移动到您的 $PATH

$ sudo mv qrcp /usr/local/bin

最后,设置可执行权限:

$ sudo chmod +x /usr/local/bin/qrcp

请注意,最后一步是可选的。 您不必使其可执行。 在这种情况下,文件将在您将其移动到您的路径后变为可执行文件。

使用包管理器安装 Qrcp

Qrcp 在 AUR 中可用。

您可以使用任何 AUR 助手安装它,例如 example .

$ yay -S qrcp

或者,

$ yay -S qrcp-bin

Qrcp 也可用作 .deb.rpm 文件。 转到发布页面并下载适合您发行版的版本。

如果您使用的是基于 Debian 的系统,请下载 .deb 从发布页面安装文件并像下面这样安装它。

$ sudo apt install gdebi
$ sudo gdebi qrcp_0.7.0_linux_x86_64.deb

在基于 RPM 的系统上,例如 CentOS、RHEL,下载 .rpm 从发布页面文件并安装它,如下所示:

$ sudo dnf install qrcp_0.7.0_linux_x86_64.rpm

或者,

$ sudo rpm -ivh qrcp_0.7.0_linux_x86_64.rpm

安装后,通过运行以下命令确认 Qrcp 是否正常工作:

$ qrcp version
qrcp 0.7.0 [date: 2020-10-08T13:30:56Z]

通过扫描 QR 码使用 Qrcp 在计算机和移动设备之间传输文件

使用 Qrcp 在电脑和手机之间传输文件非常简单!

就本指南而言,我将使用 Ubuntu 20.04 LTS 桌面系统和 Android 平板电脑。

确保您已在手机上安装 QR 码阅读器应用程序。 有很多适用于 Android 的 QR 码阅读器。 请进行快速网络搜索并在您的手机上安装您选择的任何二维码阅读器。

使用 Qrcp 将文件从计算机发送到手机

首先,让我们看看如何将文件从 Linux 系统发送到移动设备。

我将使用以下命令将图像文件从我的 Ubuntu 桌面发送到平板电脑:

$ qrcp ostechnix.png

当您第一次启动 Qrcp 时,它会扫描您的系统以查找系统中可用的 WiFi 网络接口的数量。 如果有不止一张合适的 WiFi 卡可用,Qrcp 会要求您选择一张来传输文件。 就我而言,我选择了无线接口,即 wlp9s0. 按 ENTER 键接受无线接口。 Qrcp 会记住这个选择,下次不会再询问。

Use the arrow keys to navigate: ↓ ↑ → ← 
? Choose interface: 
  ▸ wlp9s0 (192.168.225.37)
    virbr0 (192.168.122.1)
    mpqemubr0 (10.39.86.1)
    any (0.0.0.0)

您现在将在终端中看到一个二维码,如下所示。

✔ wlp9s0 (192.168.225.37)
Scan the following URL with a QR reader to start the file transfer:
https://192.168.225.37:41377/send/7jwi
█████████████████████████████████████
█████████████████████████████████████
████ ▄▄▄▄▄ ██▄ ▄███▄▄█▀▄▄█ ▄▄▄▄▄ ████
████ █   █ █ ▀▀ ██▄█▄▀██▄█ █   █ ████
████ █▄▄▄█ █ ██▄█   █▀▄█ █ █▄▄▄█ ████
████▄▄▄▄▄▄▄█ ▀▄█▄▀▄▀▄█ █ █▄▄▄▄▄▄▄████
████ ▀  ▄▄▄█▀▀▀███▄ ▄█▀ █▀   ▄▄█▀████
████▀█▄ ▀▄▄ ██  ▀█▀█▀▀ ▀▀▄▀ ▀██▀█████
████▀▀▄▄▄▀▄▄▀█▄▀█▀▀▄ █▄▄▀ ▀▄▄▄ █▀████
████ █▀  █▄▀▀ █ █ ▄▄ ▄█ █ ▀█ █▄▀█████
████ █▀ ██▄▄▄▄█ ▀█▄▄█▄▄█ █▄█▀▀ █▀████
████ █▄█▀▄▄▄█ █ ▄█▀█▀▄▀▀▀█▄█ ▄▄▀█████
████▄█▄▄▄▄▄▄ ▄▄▀▀▀▀▄ ██▀ ▄▄▄ ▀   ████
████ ▄▄▄▄▄ █▀▄█▀█ ▄▄▄ ▀  █▄█ ▄▄█▀████
████ █   █ █  ▀▀▄█▄▄ ▄▀    ▄ ▄█▀█████
████ █▄▄▄█ █▄▄█▀  ▄██▄▀▄ ▀█▄▀██ █████
████▄▄▄▄▄▄▄█▄█▄█▄▄▄▄█████▄█▄█████████
█████████████████████████████████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
使用 Qrcp 将文件从计算机发送到手机

现在,打开手机中的二维码阅读器应用程序,扫描 Linux 计算机终端中显示的二维码。 扫描二维码后,您将在手机中看到下载地址。 只需单击它即可下载文件。

使用手机上的 QR 阅读器应用程序扫描 QR 码以开始文件传输

该文件将下载到您手机的默认下载文件夹中。

文件已成功下载到手机文件已成功下载到手机

您也可以发送多个文件:

$ qrcp file1 file2

整个文件夹可以如下发送:

$ qrcp ~/Documents/

如果文件很大,只需将其压缩并发送 --zip 旗帜:

$ qrcp --zip movie.mp4

使用 Qrcp 从手机接收文件到计算机

要将文件从移动设备发送到计算机,请在 Linux 系统的终端中运行以下命令:

$ qrcp receive

您将在终端中看到二维码:

Scan the following URL with a QR reader to start the file transfer:
https://192.168.225.37:35221/receive/3xiz
█████████████████████████████████████
█████████████████████████████████████
████ ▄▄▄▄▄ ██  █ ▀ ▄██  ▄█ ▄▄▄▄▄ ████
████ █   █ █ ▀█▄▀ ▄▀▄█▄▄██ █   █ ████
████ █▄▄▄█ █  ▄█ ██▄▀▄▀█▀█ █▄▄▄█ ████
████▄▄▄▄▄▄▄█ █ ▀▄█▄█ █ ▀▄█▄▄▄▄▄▄▄████
████ ▀▄▄▄ ▄▀█▄ █ ▀█▄▄█▀▀█▀   ▄▄█▀████
████ ▄▄▀▀█▄ █▄▀▄▄ ▄▄▄▀ ▀▀▄▀ ▀██▀█████
██████▀█▄▄▄▀█ ▄█ █▄▄ █▀▄▀ ▀▄▄▄ █▀████
████▄ █  █▄▄█    █▀██▄█ █ ▀█ █▄▀█████
████ ▀▀▀█▀▄▀▀▀▀█▄▀▀  ▄ █ █▄█▀▀ █▀████
████ █ ▀▀█▄ █ █▀  ▄▄▀▄▀▀▀█▄█ ▄▄▀█████
████▄█▄██▄▄█ ▄ ▄▀█▄▄▀██▀ ▄▄▄ ▀   ████
████ ▄▄▄▄▄ █▀█▄█▄█▀▄ ▄▀  █▄█ ▄▄█▀████
████ █   █ █   █▀▀▀ ▄▄▄    ▄ ▄█▀█████
████ █▄▄▄█ █▄██▄█▄██▀▄▀▄ ▀█▄▀██ █████
████▄▄▄▄▄▄▄█▄▄▄▄███▄▄████▄█▄█████████
█████████████████████████████████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
使用 Qrcp 从手机接收文件到计算机使用 Qrcp 从手机接收文件到计算机

打开移动设备中的二维码阅读器,扫描上面的二维码。 点击 URL 从您的手机上传文件:

从手机扫描二维码开始文件传输从手机扫描二维码开始文件传输

一个新的浏览器窗口将在您的手机中打开。 选择要从手机发送到计算机的文件,然后单击传输按钮:

从手机中选择文件发送到您的计算机从手机中选择文件发送到您的计算机

文件传输成功后,您将在移动设备上看到以下消息:

文件成功从手机发送到电脑文件成功从手机发送到电脑

在您的 Linux 终端上,文件传输完成后您将看到以下消息:

Transferring file:  /home/sk/IMG-20201017-WA0002.jpg
/home/sk/IMG-20201017-WA0002.jpg[===============================================]  99.74% 0s
File transfer completed
文件从手机接收到电脑文件从手机接收到电脑

如您所见,该文件已下载到当前目录中。 如果要将文件接收到特定目录,请使用 --output 旗帜:

$ qrcp receive --output=~/Downloads

在这种情况下,所有文件都将下载到 ~/Downloads 目录。

Qrcp 选项

Qrcp 需要零配置。 默认情况下,Qrcp 无需任何事先配置即可开箱即用。 但是,您可以借助 Qrcp 参数以某些方式调整 Qrcp 的功能。 为了 example,您可以使用特定端口而不是随机端口,指定配置文件的位置,使用特定的网络接口卡进行文件传输,使用自定义 URL 发送/接收文件,使用 FQDN 代替 IP 地址,在浏览器中打印二维码,保持服务器活跃,并通过 HTTPS 等安全地传输文件。

配置 Qrcp

默认配置文件存储在 $HOME/.qrcp.json. Qrcp 将在传输文件时读取和使用该文件中定义的参数。

您可以使用查看当前配置的参数 cat 命令:

$ cat $HOME/.qrcp.json
{
    "fqdn": "",
    "interface": "wlp9s0",
    "port": 0,
    "keepAlive": false,
    "path": "~/Desktop",
    "secure": false,
    "tls-key": "",
    "tls-cert": ""
}

我们可以通过运行以下命令根据自己的喜好配置 Qrcp 默认参数:

$ qrcp config

选择合适的无线网络接口用于文件传输:

? Choose interface: 
    mpqemubr0 (10.39.86.1)
  ▸ wlp9s0 (192.168.225.37)
    virbr0 (192.168.122.1)
    any (0.0.0.0)

如果由于某种原因看不到网络接口,请改用以下命令:

$ qrcp --list-all-interfaces config

Enter 完全限定名称 (FQDN):

✔ Choose fully-qualified domain name: sk.ostechnix.example

选择随机端口:

✔ Choose port, 0 means random port: 8080

如果要使用随机端口,只需按 0 (零)。

Enter 保存文件/文件夹的目标路径:

✔ Choose path, empty means random: ~/Downloads

默认情况下,Qrcp 会将接收到的文件/文件夹保存在当前目录中。

选择是否要在文件传输后保持服务器活动:

? Should the server keep alive after transferring?: 
  ▸ No
    Yes

如果要安全传输文件,请选择适当的选项:

? Should files be securely transferred with HTTPS?: 
  ▸ No
    Yes

如果选择“是”,则必须输入 TLS 证书路径和 TLS 证书密钥。

更新配置文件后,默认配置将更新为新值。

Configuration updated:
{
  "fqdn": "sk.ostechnix.example",
  "interface": "wlp9s0",
  "port": 8080,
  "keepAlive": false,
  "path": "~/Downloads",
  "secure": false,
  "tls-key": "",
  "tls-cert": ""
}

Qrcp 将在传输文件时使用这些新值。

您还可以手动使用自定义参数,而不是配置文件中定义的现有参数。

使用自定义端口

在您的计算机和移动设备之间发送和接收文件时,Qrcp 将使用任何随机可用端口。 如果你想使用某个端口,对于 example 8080,在传输文件时,使用 --port 或者 -p 旗帜:

$ qrcp --port 8080 file.txt

指定配置文件的位置

如前所述,默认配置文件存储在 $HOME/.qrcp.json. 如果要使用存储在不同位置的配置文件,请使用 --config 旗帜:

$ qrcp --config ~/Downloads/qrcp.json file.txt

使用特定的 WiFi 接口进行文件传输

如果您的系统中有多个合适的 WiFi 接口可用,您可以使用特定的 WiFi 接口进行文件传输,使用 --interface (或者 -i) 旗帜:

$ qrcp -i wlp9s0 file.txt

为 URL 分配特定路径

Qrcp 默认使用以下 URL 格式来发送和接收文件:

  • 发送 – https://{ip address}:{port}/send/{random path}
  • 收到 – https://{ip address}:{port}/receive/{random path}

如果要对 URL 使用特定路径,而不是随机路径,请使用 --path 旗帜:

$ qrcp --path=abcd file.txt

现在,生成的 URL 将是:

$ https://{ip address}:{port}/send/abcd

使用 FQDN 而不是 IP 地址

默认情况下,Qrcp 将在 URL 中使用您的 Linux 系统的 IP 地址。 如果要在 URL 中使用完全限定的命名而不是 IP 地址,请使用 --fqdn (或者 -d) 旗帜:

$ qrcp --fqdn ostechnix.example -i wlp9s0 -p 8080 file.txt

Qrcp 将在终端中生成二维码。 如果要在终端窗口之外打印 QR,请使用 --browser 旗帜。

$ qrcp --browser file.txt

此命令仍将在终端中打印 QR 码,但也会在默认 Web 浏览器的新窗口中显示 QR 码。

保持服务器活跃

文件传输完成后,连接将自动关闭。 因此其他设备无法再访问该文件/文件夹。 如果要将相同的文件/文件夹传输到多个设备,请使用 --keep-alive 旗帜:

$ qrcp --keep-alive file.txt

获得帮助

要查看可用子命令和标志的列表,请运行:

$ qrcp --help
Usage:
  qrcp [flags]
  qrcp [command]

Available Commands:
  completion  Generate completion script
  config      Configure qrcp
  help        Help about any command
  receive     Receive one or more files
  send        Send a file(s) or directories from this host
  version     Print version number and build information.

Flags:
  -b, --browser               display the QR code in a browser window
  -c, --config string         path to the config file, defaults to $HOME/.qrcp
  -d, --fqdn string           fully-qualified domain name to use for the resulting URLs
  -h, --help                  help for qrcp
  -i, --interface string      network interface to use for the server
  -k, --keep-alive            keep server alive after transferring
  -l, --list-all-interfaces   list all available interfaces when choosing the one to use
      --path string           path to use. Defaults to a random string
  -p, --port int              port to use for the server
  -q, --quiet                 only print errors
  -s, --secure                use https connection
      --tls-cert string       path to TLS certificate to use with HTTPS
      --tls-key string        path to TLS private key to use with HTTPS
  -z, --zip                   zip content before transferring

Use "qrcp [command] --help" for more information about a command.

资源:

相关阅读:

  • 使用 Croc 在计算机之间传输文件和文件夹
  • 使用 Warpinator 在 Linux 桌面之间共享文件
  • 如何通过 Internet 安全地共享文件 Firefox 发送
  • 如何在 Linux 中使用 ffsend 从命令行安全地共享文件
  • PSiTransfer – 一个简单的开源自托管文件共享解决方案
  • 如何使用 simpleHTTPserver 设置基本文件服务器
  • 一种从命令行通过 Internet 共享文件的简单快捷方式
  • OnionShare – 安全匿名地共享任何大小的文件

特色图片由 格德·奥尔特曼关注.