コンピュータとモバイル間のファイル転送は、さまざまな方法でさまざまなプロトコルを使用して実行できます。今日は、まったく新しい、異なるアプローチが見られます。このガイドでは、QRコードをスキャンしてコンピューターとモバイルデバイス間でファイルを転送する方法について説明します。はい、あなたはその権利を読んでいます! Qrcpに挨拶します 、以前はQrファイル転送と呼ばれていました 、ターミナルを離れることなく、QRコードをスキャンすることでLinuxシステムと携帯電話の間でWiFi経由でファイルを送受信するために使用されるシンプルなコマンドラインファイル転送アプリケーション。
ファイルを送信するとき、QrcpはWebサーバーをランダムポート上のWiFiネットワークインターフェイスカードのアドレスにバインドし、そのハンドラーを作成します。デフォルトのハンドラーはコンテンツを提供し、転送が完了するとプログラムを終了します。同様に、ファイルを受信するときは、qrcp
アップロードページを提供し、転送を処理します。
Qrcpは、 Goで記述された無料のオープンソースプログラムです。 プログラミング言語であり、 MITでリリースされています ライセンス。
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
カンマを使用してダウンロードしたアーカイブを抽出します:
$ 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
Yay など、任意の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
CentOS、RHELなどのRPMベースのシステムでは、.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を使用してコンピューターとモバイル間でファイルを転送するのは非常に簡単です。
このガイドでは、Ubuntu20.04LTSデスクトップシステムとAndroidタブレットPCを使用します。
携帯電話にQRコードリーダーアプリケーションがインストールされていることを確認してください。 Androidで利用できるQRコードリーダーはたくさんあります。簡単なWeb検索を実行し、任意のQRコードリーダーを携帯電話にインストールしてください。
Qrcpを使用してコンピューターからモバイルにファイルを送信する
まず、Linuxシステムからモバイルにファイルを送信する方法を見てみましょう。
次のコマンドを使用して、UbuntuデスクトップからタブレットPCに画像ファイルを送信します。
$ qrcp ostechnix.png
Qrcpを初めて起動すると、システムがスキャンされ、システムで使用可能なWiFiネットワークインターフェイスの数が検出されます。利用可能な適切なWiFiカードが複数ある場合、Qrcpはファイルを転送するために1つを選択するように求めます。私の場合、ワイヤレスインターフェイス、つまり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
█████████████████████████████████████
█████████████████████████████████████
████ ▄▄▄▄▄ ██▄ ▄███▄▄█▀▄▄█ ▄▄▄▄▄ ████
████ █ █ █ ▀▀ ██▄█▄▀██▄█ █ █ ████
████ █▄▄▄█ █ ██▄█ █▀▄█ █ █▄▄▄█ ████
████▄▄▄▄▄▄▄█ ▀▄█▄▀▄▀▄█ █ █▄▄▄▄▄▄▄████
████ ▀ ▄▄▄█▀▀▀███▄ ▄█▀ █▀ ▄▄█▀████
████▀█▄ ▀▄▄ ██ ▀█▀█▀▀ ▀▀▄▀ ▀██▀█████
████▀▀▄▄▄▀▄▄▀█▄▀█▀▀▄ █▄▄▀ ▀▄▄▄ █▀████
████ █▀ █▄▀▀ █ █ ▄▄ ▄█ █ ▀█ █▄▀█████
████ █▀ ██▄▄▄▄█ ▀█▄▄█▄▄█ █▄█▀▀ █▀████
████ █▄█▀▄▄▄█ █ ▄█▀█▀▄▀▀▀█▄█ ▄▄▀█████
████▄█▄▄▄▄▄▄ ▄▄▀▀▀▀▄ ██▀ ▄▄▄ ▀ ████
████ ▄▄▄▄▄ █▀▄█▀█ ▄▄▄ ▀ █▄█ ▄▄█▀████
████ █ █ █ ▀▀▄█▄▄ ▄▀ ▄ ▄█▀█████
████ █▄▄▄█ █▄▄█▀ ▄██▄▀▄ ▀█▄▀██ █████
████▄▄▄▄▄▄▄█▄█▄█▄▄▄▄█████▄█▄█████████
█████████████████████████████████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
次に、携帯電話でQRコードリーダーアプリを開き、Linuxコンピューターの端末に表示されるQRコードをスキャンします。 QRコードをスキャンすると、携帯電話にダウンロードURLが表示されます。クリックするだけでファイルをダウンロードできます。
ファイルは、携帯電話のデフォルトのダウンロードフォルダにダウンロードされます。
複数のファイルを送信することもできます:
$ 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
█████████████████████████████████████
█████████████████████████████████████
████ ▄▄▄▄▄ ██ █ ▀ ▄██ ▄█ ▄▄▄▄▄ ████
████ █ █ █ ▀█▄▀ ▄▀▄█▄▄██ █ █ ████
████ █▄▄▄█ █ ▄█ ██▄▀▄▀█▀█ █▄▄▄█ ████
████▄▄▄▄▄▄▄█ █ ▀▄█▄█ █ ▀▄█▄▄▄▄▄▄▄████
████ ▀▄▄▄ ▄▀█▄ █ ▀█▄▄█▀▀█▀ ▄▄█▀████
████ ▄▄▀▀█▄ █▄▀▄▄ ▄▄▄▀ ▀▀▄▀ ▀██▀█████
██████▀█▄▄▄▀█ ▄█ █▄▄ █▀▄▀ ▀▄▄▄ █▀████
████▄ █ █▄▄█ █▀██▄█ █ ▀█ █▄▀█████
████ ▀▀▀█▀▄▀▀▀▀█▄▀▀ ▄ █ █▄█▀▀ █▀████
████ █ ▀▀█▄ █ █▀ ▄▄▀▄▀▀▀█▄█ ▄▄▀█████
████▄█▄██▄▄█ ▄ ▄▀█▄▄▀██▀ ▄▄▄ ▀ ████
████ ▄▄▄▄▄ █▀█▄█▄█▀▄ ▄▀ █▄█ ▄▄█▀████
████ █ █ █ █▀▀▀ ▄▄▄ ▄ ▄█▀█████
████ █▄▄▄█ █▄██▄█▄██▀▄▀▄ ▀█▄▀██ █████
████▄▄▄▄▄▄▄█▄▄▄▄███▄▄████▄█▄█████████
█████████████████████████████████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
モバイルデバイスでQRコードリーダーを開き、上記のQRコードをスキャンします。 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の機能を微調整できます。たとえば、ランダムポートの代わりに特定のポートを使用したり、構成ファイルの場所を指定したり、ファイル転送に特定のネットワークインターフェイスカードを使用したり、ファイルの送受信にカスタムURLを使用したり、IPアドレスの代わりにFQDNを使用したり、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インターフェースが複数ある場合は、--interface
を使用してファイル転送に特定のWiFiインターフェースを使用できます。 (または-i
)フラグ:
$ qrcp -i wlp9s0 file.txt
URLに特定のパスを割り当てる
Qrcpは、デフォルトで次のURL形式を使用してファイルを送受信します。
- send-
http://{ip address}:{port}/send/{random path}
- receive-
http://{ip address}:{port}/receive/{random path}
ランダムパスではなく、URLに特定のパスを使用する場合は、--path
を使用します フラグ:
$ qrcp --path=abcd file.txt
これで、結果のURLは次のようになります。
$ http://{ip address}:{port}/send/abcd
IPアドレスの代わりにFQDNを使用する
デフォルトでは、QrcpはURLでLinuxシステムのIPアドレスを使用します。 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.