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

可以通过各种方法和使用各种协议来完成计算机与移动设备之间的文件传输。 今天,我们将看到一种全新的,不同的方法。 本指南介绍了如何通过扫描QR码在计算机和移动设备之间传输文件。 是的,你没有看错! 打招呼 Qrcp, 原名 Qr文件传输,这是一个简单的命令行文件传输应用程序,用于通过扫描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帮助器进行安装,例如 好极了

$ 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]

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

使用Qrcp在计算机和移动设备之间传输文件非常容易!

出于本指南的目的,我将使用Ubuntu 20.04 LTS桌面系统和Android Tablet PC。

确保在手机上安装了QR码阅读器应用程序。 有很多可用于Android的QR码阅读器。 请进行快速的网络搜索,然后在您的手机上安装您选择的任何QR码阅读器。

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

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

我将使用以下命令将图像文件从Ubuntu桌面发送到Tablet PC:

$ 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)

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

✔ wlp9s0 (192.168.225.37)
Scan the following URL with a QR reader to start the file transfer:
http://192.168.225.37:41377/send/7jwi
█████████████████████████████████████
█████████████████████████████████████
████ ▄▄▄▄▄ ██▄ ▄███▄▄█▀▄▄█ ▄▄▄▄▄ ████
████ █   █ █ ▀▀ ██▄█▄▀██▄█ █   █ ████
████ █▄▄▄█ █ ██▄█   █▀▄█ █ █▄▄▄█ ████
████▄▄▄▄▄▄▄█ ▀▄█▄▀▄▀▄█ █ █▄▄▄▄▄▄▄████
████ ▀  ▄▄▄█▀▀▀███▄ ▄█▀ █▀   ▄▄█▀████
████▀█▄ ▀▄▄ ██  ▀█▀█▀▀ ▀▀▄▀ ▀██▀█████
████▀▀▄▄▄▀▄▄▀█▄▀█▀▀▄ █▄▄▀ ▀▄▄▄ █▀████
████ █▀  █▄▀▀ █ █ ▄▄ ▄█ █ ▀█ █▄▀█████
████ █▀ ██▄▄▄▄█ ▀█▄▄█▄▄█ █▄█▀▀ █▀████
████ █▄█▀▄▄▄█ █ ▄█▀█▀▄▀▀▀█▄█ ▄▄▀█████
████▄█▄▄▄▄▄▄ ▄▄▀▀▀▀▄ ██▀ ▄▄▄ ▀   ████
████ ▄▄▄▄▄ █▀▄█▀█ ▄▄▄ ▀  █▄█ ▄▄█▀████
████ █   █ █  ▀▀▄█▄▄ ▄▀    ▄ ▄█▀█████
████ █▄▄▄█ █▄▄█▀  ▄██▄▀▄ ▀█▄▀██ █████
████▄▄▄▄▄▄▄█▄█▄█▄▄▄▄█████▄█▄█████████
█████████████████████████████████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀

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

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

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

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

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

您还可以发送多个文件:

$ qrcp file1 file2

整个文件夹可以像下面这样发送:

$ qrcp ~/Documents/

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

$ qrcp --zip movie.mp4

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

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

$ qrcp receive

您将在终端中看到QR代码:

Scan the following URL with a QR reader to start the file transfer:
http://192.168.225.37:35221/receive/3xiz
█████████████████████████████████████
█████████████████████████████████████
████ ▄▄▄▄▄ ██  █ ▀ ▄██  ▄█ ▄▄▄▄▄ ████
████ █   █ █ ▀█▄▀ ▄▀▄█▄▄██ █   █ ████
████ █▄▄▄█ █  ▄█ ██▄▀▄▀█▀█ █▄▄▄█ ████
████▄▄▄▄▄▄▄█ █ ▀▄█▄█ █ ▀▄█▄▄▄▄▄▄▄████
████ ▀▄▄▄ ▄▀█▄ █ ▀█▄▄█▀▀█▀   ▄▄█▀████
████ ▄▄▀▀█▄ █▄▀▄▄ ▄▄▄▀ ▀▀▄▀ ▀██▀█████
██████▀█▄▄▄▀█ ▄█ █▄▄ █▀▄▀ ▀▄▄▄ █▀████
████▄ █  █▄▄█    █▀██▄█ █ ▀█ █▄▀█████
████ ▀▀▀█▀▄▀▀▀▀█▄▀▀  ▄ █ █▄█▀▀ █▀████
████ █ ▀▀█▄ █ █▀  ▄▄▀▄▀▀▀█▄█ ▄▄▀█████
████▄█▄██▄▄█ ▄ ▄▀█▄▄▀██▀ ▄▄▄ ▀   ████
████ ▄▄▄▄▄ █▀█▄█▄█▀▄ ▄▀  █▄█ ▄▄█▀████
████ █   █ █   █▀▀▀ ▄▄▄    ▄ ▄█▀█████
████ █▄▄▄█ █▄██▄█▄██▀▄▀▄ ▀█▄▀██ █████
████▄▄▄▄▄▄▄█▄▄▄▄███▄▄████▄█▄█████████
█████████████████████████████████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀

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

打开移动设备中的QR码阅读器,然后扫描上述QR码。 单击URL从您的手机上载文件:

从手机扫描QR码以开始文件传输从手机扫描QR码以开始文件传输

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

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

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

文件已成功从手机发送到计算机文件已成功从手机发送到计算机

在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的功能。 例如,您可以使用特定端口而不是随机端口,指定配置文件的位置,使用特定网络接口卡进行文件传输,使用自定义URL发送/接收文件,使用FQDN代替IP地址,在其中打印QR码浏览器,保持服务器运行,并通过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

输入标准名称(FQDN):

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

选择随机端口:

✔ Choose port, 0 means random port: 8080

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

输入目标路径以保存文件/文件夹:

✔ 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将使用任何随机可用的端口。 例如,如果要使用某个端口 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格式来发送和接收文件:

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

如果您想为网址使用特定路径,而不是随机路径,请使用 --path 旗:

$ qrcp --path=abcd file.txt

现在,结果URL为:

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

使用FQDN代替IP地址

默认情况下,Qrcp将在URL中使用Linux系统的IP地址。 如果要使用完全限定的named代替URL中的IP地址,请使用 --fqdn (要么 -d)标志:

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

在浏览器中打印QR码

Qrcp将在终端中生成QR码。 如果要在终端窗口之外打印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桌面之间共享文件
  • 如何使用Firefox Send通过Internet安全地共享文件
  • 如何在Linux中使用ffsend从命令行安全地共享文件
  • PSiTransfer –一个简单的开源自托管文件共享解决方案
  • 如何使用simpleHTTPserver设置基本文件服务器
  • 从命令行通过Internet共享文件的简便快捷方法
  • OnionShare –安全且匿名地共享任何大小的文件

特色图片 格德·阿尔特曼Pixabay

Android文件共享文件传输GoGoLangLinuxMobile开源QR Code Qr-文件传输Qrcp

Sidebar