通過掃描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