Поиск по сайту:

Передача файлов между компьютерами и мобильными устройствами путем сканирования QR-кодов

Передача файлов между компьютером и мобильным телефоном может осуществляться различными методами и с использованием различных протоколов. Сегодня мы увидим совершенно новый, другой подход. В этом руководстве объясняется, как переносить файлы между компьютерами и мобильными устройствами путем сканирования QR-кодов. Да, вы правильно прочитали! Встречайте Qrcp, ранее известный как Qr-filetransfer, простое приложение для передачи файлов из командной строки, используемое для отправки и получения файлов через Wi-Fi между системой Linux и мобильным телефоном. сканируя QR-код, не выходя из Терминала.

При отправке файлов Qrcp привяжет веб-сервер к адресу вашей сетевой карты WiFi на случайном порту и создаст для него обработчик. Обработчик по умолчанию будет обслуживать содержимое и выходить из программы после завершения передачи. Аналогично, при получении файлов qrcp обслуживает страницу загрузки и обрабатывает передачу.

Qrcp — бесплатная программа с открытым исходным кодом, написанная на языке программирования Go и распространяемая под лицензией MIT.

Установите Qrcp в Linux

Qrcp можно установить несколькими способами. Установите Qrcp в Linux, используя любой из следующих методов.

Установите Qrcp с помощью Golang

Сначала установите язык программирования Go в вашей системе Linux, как описано по следующей ссылке.

  • Как установить язык Go в Linux

После установки Golang выполните следующую команду, чтобы установить Qrcp в вашей системе Linux:

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

Распакуйте скачанный архив с помощью запятой:

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.

  • qrcp-bin
  • qrcp

Установить его можно с помощью любых помощников AUR, например Paru или Yay.

paru -S qrcp

Или,

paru -S qrcp-bin

Или,

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.

Убедитесь, что на вашем мобильном телефоне установлено приложение для считывания QR-кода. Для Android доступно множество программ для чтения QR-кодов. Пожалуйста, выполните быстрый поиск в Интернете и установите любое устройство для чтения QR-кодов по вашему выбору на свой мобильный телефон.

Отправляйте файлы с компьютера на мобильный с помощью Qrcp

Сначала давайте посмотрим, как отправить файл из системы Linux на мобильный телефон.

Я собираюсь отправить файл изображения с рабочего стола Ubuntu на планшетный ПК с помощью команды:

qrcp ostechnix.png

Когда вы запускаете Qrcp в первый раз, он сканирует вашу систему, чтобы определить количество доступных сетевых интерфейсов Wi-Fi в вашей системе. Если доступно более одной подходящей карты Wi-Fi, 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-кодов на своем мобильном телефоне и отсканируйте QR-код, показанный на терминале компьютера с Linux. После сканирования 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

Откройте считыватель QR-кодов на мобильном устройстве и отсканируйте приведенный выше QR-код. Нажмите URL-адрес, чтобы загрузить файлы со своего мобильного телефона:

Отсканируйте 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-адреса для отправки/получения файлов, использовать полное доменное имя вместо 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

Используйте специальный интерфейс Wi-Fi для передачи файлов

Если в вашей системе доступно более одного подходящего интерфейса Wi-Fi, вы можете использовать определенный интерфейс Wi-Fi для передачи файлов, используя флаг --interface (или -i):

qrcp -i wlp9s0 file.txt

Назначьте конкретный путь для URL-адресов

Qrcp по умолчанию использует следующие форматы URL-адресов для отправки и получения файлов:

  • отправить - http://{ip-адрес}:{порт}/send/{случайный путь
  • получить - http://{ip-адрес}:{порт}/receive/{случайный путь

Если вы хотите использовать для URL-адресов определенный путь, а не случайный путь, используйте флаг --path :

qrcp --path=abcd file.txt

Теперь результирующий URL будет:

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

Используйте полное доменное имя вместо IP-адреса.

По умолчанию Qrcp будет использовать IP-адрес вашей системы Linux в URL-адресе. Если вы хотите использовать полное имя вместо IP-адреса в URL-адресе, используйте флаг --fqdn (или -d):

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

Распечатать QR-код в браузере

Qrcp сгенерирует QR-код в терминале. Если вы хотите распечатать QR-код за пределами окна терминала, используйте флаг --browser .

qrcp --browser file.txt

Эта команда по-прежнему будет печатать QR-код в Терминале, но также будет отображать 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.

Ресурс:

  • Репозиторий Qrcp на GitHub

Связанное чтение:

  • Перенос файлов и папок между компьютерами с помощью Croc
  • Обмен файлами между настольными компьютерами Linux с помощью Warpinator
  • Как безопасно обмениваться файлами через Интернет с помощью Firefox Send
  • Как безопасно обмениваться файлами из командной строки с помощью ffsend в Linux
  • PSiTransfer — простое решение для самостоятельного размещения файлов с открытым исходным кодом
  • Как настроить базовый файловый сервер с помощью simpleHTTPserver
  • Простой и быстрый способ поделиться файлами через Интернет из командной строки
  • OnionShare - безопасно и анонимно делитесь файлами любого размера

Изображение Герда Альтмана из Pixabay.

Статьи по данной тематике