友人とファイルを共有するのはそんなに難しいことなのでしょうか?

本格的なファイルマネージャー、スライドショービューア、メディアサーバーへと成長した小さなAndroidサーバー、Pafera File Serverをご紹介します。
2023-04-17 22:41:37
👁️ 840
💬 0

コンテンツ

  1. 導入
  2. 候補者
  3. 解決策
  4. それで、これはどのように機能するのでしょうか?
  5. サーバーのインストール
  6. ファイルの閲覧
  7. システムメニュー
  8. ファイルメニュー
  9. スライドショーの使用
  10. 構成
  11. 今後の計画

導入

わあ!それは本当にすごいですね。私にも教えてもらえますか?

常に新しいガジェットやアプリを導入している技術者である私にとって、パーティーや会議、あるいは地下鉄を待っているときでさえ、上記のフレーズに似た言葉を何度言われたか覚えていません。

しかし、次のようなやり取りが何回もあったことを私ははっきりと覚えています。

自分 はい!何を使っていますか?
友人 ええと、アプリAを持っています。
自分 うーん...それはないですね。アプリBはありますか?
友人 いいえ、それも持っていません。方法Cはありますか?
自分 わかりました。試してみましょう。うーん...接続できません。方法 D を使用するのはいかがでしょうか?
友人 それもうまくいきません。

ファイルの共有は、コンピューターが暗黒時代に登場して以来、一般的な作業でした。最初は熱心なプログラマーがお互いのプリントアウトを喜んで見ていましたが、その後パンチカードをコピーするようになりました。その後、磁気ディスクが新しいトレンドとなり、テクノロジーは光ディスク、フラッシュドライブ、ワイヤレス転送へと移行しました。

しかし、70年経った今でも、面倒な手続きを踏んだり、奇妙なアプリをダウンロードしたり、遅いワイヤレス転送に頼ったりせずに、かわいい柴犬の動画を簡単に共有することはできない段階にあるようです。

何か違うことを試してみませんか?

候補者

でもジム、私は毎日問題なくファイルを共有している、とあなたは言うのですか?

さて、ファイルを転送するためによく使われる方法を見てみましょう。

方法 失敗
1. エアドロップ Android スマートフォンに AirDrop できますか? わかりました!
2. 近くのシェア NearBy Share で iPhone にファイルを送信できますか? うーん...
3. AirDroid、SHAREit、Resilio Sync、Send Anywhere など バス停にいる人に、ファイルを受け取るためだけにあなたと同じアプリをすぐにインストールするように言いますか? いいですよ!
4. チャットプログラム 多くのチャット プログラムでは、送信できるファイルの種類が制限され、HD ビデオが再圧縮されるため、ファイルがゆっくりとアップロードされてから友人のデバイスにダウンロードされるまで待たなければなりません。また、方法 3 の問題にも遭遇します。つまり、ファイルを転送するには同じチャット プログラムをインストールしておく必要があります。
5. ブルートゥース Bluetooth 5 を使用しても、700MiB の HD ビデオを転送するのは、湿度の高いフロリダの天候の中でペンキが乾くのを見ているようなものです。
6. メール ほとんどの電子メール サービスでは添付ファイルのサイズが制限されており、チャット プログラムを介して転送するよりもさらに遅くなります。ただし、ドキュメントを印刷するためだけにファイルを自分宛に電子メールで送信する iPhone ユーザーの話を私はいつも面白いと思っています。;)
7. DropBox、OneDrive など 方法 3 および 4 と同じアップロード/ダウンロードの問題が発生しています。
8. USBフラッシュドライブ 実際にはかなり実行可能で迅速ですが、1 つを持ち歩くことと、友人のデバイスと接続するための適切なアダプターも忘れずに用意する必要があります。私自身は常にポケットに 1 つ入れていますが、共有相手のデバイスがドライブをサポートするかどうかは運次第です。
9. 友達に自分の携帯電話のカメラであなたの携帯電話の画面の写真やビデオを撮ってもらいましょう。 品質の悪いデータの転送成功率は 100% です!
共有が機能しない場合はどうなりますか?

現時点では状況は良くないようです。

解決策

つまり、効率的で普遍的な解決策となるためには、

  1. あらゆるデバイスで使用可能
  2. サーバーへのアップロードやサーバーからの戻りを必要とせず、直接WiFi転送をサポート
  3. 4K ビデオを 480p に再圧縮しません。
  4. 電話の電波が届かない場所でも機能します

さて、すべてのデバイスにプリインストールされていて、一般に受け入れられているプロトコルを使用して他のコンピューターにアクセスするように設計されており、ファイルをアップロード/ダウンロードできるものがあればいいのですが...

何か...

のように...

... です。

ウェブブラウザ!

Windows CE が HTML 5 をサポートするなんてすごい!

それで、これはどのように機能するのでしょうか?

では、Web ブラウザはどのようにしてファイルを転送するのでしょうか?

基本的な手順は 3 つあります。

  1. 両方のデバイスを同じワイヤレスネットワーク/ホットスポットに接続します
  2. 友人にブラウザにあなたのデバイスのアドレスを入力してもらいます
  3. 好きなだけ閲覧、表示、ダウンロード、アップロードできます
2023 年になっても、特に山でハイキングをしている場合には、携帯電話のホットスポットを使用するのが依然としてファイルを転送する最速の方法です。

このアプローチの利点は

  1. ウェブブラウザを搭載したあらゆるデバイス(つまり、最近ではほぼすべてのデバイス)で動作します。
  2. すべてのファイルを個別にクリックして送信ボタンを押し、友達が承認するのを待つ必要はありません。友達は自分が欲しいものを確認して、自分でファイルをダウンロードできます。
  3. 1 人ずつではなく、グループ全体で同時に閲覧することができます。

もちろん、このサーバーは iPhone や iPad では動作しません。Apple が iOS デバイスのファイルシステムへのアクセスを制限しているだけでなく、Cydia でルート化しないと Linux プログラムを実行できないためです。

幸いなことに、サーバーを実行するために必要なのは *1 つの* デバイスだけなので、Apple の友人は問題なく Android フォンに接続し、ファイルをダウンロードおよびアップロードできます。また、AirDrop は Apple デバイスでのみ機能するため、友人は他のシステムを使用できないことにすでに慣れています。;)

サーバーのインストール

速度と効率性のために、Pafera ファイル サーバーは Rust で書かれた Linux/Windows アプリなので、残念ながらアプリ ストアからダウンロードすることはできません。誰かがお金を払ってくれるなら、後で Kotlin でアプリ ストア バージョンを作成するかもしれませんが、Jerry Maguire でない限り、今のところは Rust バージョンで我慢するしかありません。

幸いなことに、私よりもはるかに優秀な多くのオープンソース プログラマーが集まり、さまざまなレベルの成功率で Android フォンで Linux プログラムを実行できるアプリを作成しました。

したがって、あなたがしなければならないことは、Termux を携帯電話にインストールし、2 つのコマンドをコピーして貼り付け、Enter キーを数回押すだけです。これはワンクリック インストールではありませんが、SpaceX が StarShip を建造しているわけでもなく、クールなプログラムのまったく別のエコシステムにアクセスして遊ぶことができます。

これは、薬物を摂取した脳です... えーと... Termux に接続された電話です。

インストールは次のようになります。

  1. Termuxアプリをダウンロード F-Droidより または コードバーグより
  2. アプリを起動する
  3. 次の内容をコピーしてターミナルに貼り付け、Enter キーを押します。

    curl -O https://pafera.com/installfileserver.sh
    
  4. もう 1 つのコマンドをコピーしてターミナルに貼り付け、Enter キーを押します。

    bash installfileserver.sh
    
  5. パッケージのアップグレード プロセス中に表示されるプロンプトに対して、キーボードの Enter キーを押します。
  6. 画面に表示された URL を友達に入力してもらいます。

    ディスプレイからURLを見つける

サーバーをインストールしたら、Termux セッションを終了するだけでいつでも終了できます。

変更可能なパスワードでサーバーを再起動したい場合は、次のように入力します。

./paferafileserver password=yourpasswordhere

Termux に入力するか、上矢印を押して以前に入力したコマンドを選択します。

通知をプルダウンして「NearBy Share」をタップするだけというほど簡単ではありませんが、誤ってサーバーを実行することもなくなり、手間をかけずに多くの機能を利用できるようになります。

あなたが Rust プログラマーであれば、インストールははるかに簡単になります。

入力するだけです

cargo install paferafileserver

貨物が処理されるのを待ってください。これで完了です。

WindowsまたはLinuxでPafera File Serverを実行したい場合は、以下のビルド済みバイナリを利用できます。 7-ジップ アーカイブ。

  1. Linux (amd64)
  2. Android 7以降のTermux
  3. Linux (Userland 上の Debian 用 armv7h - Android 5 および 6)
  4. Windows スタンドアロン exe
  5. Windows 完全版 (FFMpeg および ImageMagick を含む)

ファイルの閲覧

友人がブラウザにサーバーの URL を入力すると、友人の携帯電話には次の画面が表示されます。

Pafera ファイルサーバーのホームページ

ファイルが表示されない場合は、ファイルの並べ替えと表示にスクリプトを使用しているため、友人が JavaScript を有効にしていることを確認してください。

簡単に説明すると、左上からシステム メニュー ボタン、最近使用したファイル ボタン、ホーム ディレクトリ ボタンが続きます。

ファイルをクリックする

画像のサムネイルをクリックするとスライドショーが開始され、ファイル名をクリックするとファイルがダウンロードされます。

ファイルのメニュー ボタンをクリックすると、そのファイルのアクション メニューが開き、その下の四角をクリックすると、ファイルが選択されます。

ファイルの範囲をすばやく選択するには、最初のファイルの選択ボタンをクリックし、最後のファイルのメニューボタンをクリックして「ここまで選択」を選択します。

システムメニュー

システムメニューポップアップ

検索とディープ検索 (ホットキー t と f) では、どちらも文字をいくつか入力して、その文字を含むすべてのファイルを表示できます。

違いは、通常の検索では現在のフォルダー内のファイルのみが検索されるのに対し、ディープ検索ではこのフォルダー内のすべてのフォルダーも検索される点です。

スライド ショーとディープ スライド ショー (ホットキー z と x) は同じロジックに従います。このフォルダー内のすべてのフォルダーの画像を含めるかどうかに基づいて、必要なものを選択します。

表示の切り替え (ホットキー v) は、通常の詳細表示から、このフォルダー内のすべての画像とビデオのアイコン表示に切り替わります。

並べ替え (ホットキー s) を使用すると、ファイルの順序を選択できます。ファイル名、サイズ、日付、および時間差を使用してファイルを並べ替えることができます。個人的には、時間差ビューの方が好みです。「5 分前」は「14:55」よりもはるかに便利です。

最近使用したファイル ビュー (ホットキー e) には、現在のフォルダー内の最近変更された 512 個のファイルと、このフォルダー内のすべてのフォルダーが表示されます。ホーム フォルダーにこのビューを使用する場合は注意してください。検査する小さなファイルが数十万個ある場合は、すべてのファイルを確認するのに時間がかかる場合があります。

パスワードの設定(ホットキーw)により、友達はファイルを変更、アップロード、削除するためにパスワードを入力できるようになります。このパスワードがなければ、誰もあなたの携帯電話で何も変更できないので、安全に保管してください。コマンドラインで入力するか、 password=yaddayaddayadda またはpaferafileserver.cfgで次の形式を使用します

{
  "password":"yaddayaddayadda"
}

新しいフォルダー (ホットキー o) では、現在のフォルダー内に作成する新しいフォルダーの名前を入力するよう求められます。

隠しファイルの表示 (ホットキー i) は、ピリオドで始まるファイルとフォルダーの表示を切り替えます。これは、通常、これらのファイルがユーザーに表示されないことを示すために Unix で使用されるものです。

ワンクリック ダウンロード (ホットキー k) をオンにすると、ブラウザーにファイルを表示する代わりに、クリックするだけでファイルを即座にダウンロードできるようになります。

ホットキーの表示 (ホットキー h) では、フォルダー ビューとスライド ショー ビューの両方で使用できるキーが表示されます。

ズームイン (ホットキー .) とズームアウト (ホットキー ,) を使用すると、画面上のすべてのサイズが変更されます。システムのデフォルト サイズが気に入らない場合は、これらを使用してページをカスタマイズしてください。

ファイルメニュー

ファイルメニューポップアップ

「ここまで選択」を使用すると、以前に選択したファイルと今回選択したファイルの間にあるすべてのファイルを選択できます。デスクトップとモバイルの両方でリンクをコピーするための右クリック メニューを置き換える必要がないため、非常に便利です。

すべて選択(ホットキーa)とすべて選択しない(ホットキーn)は、その名の通りです。すべてのファイルを削除するときに使用する場合は注意してください。 本当に すべてのファイルを削除したい。

送信 (ホットキー g) を使用するとスキャン ウィンドウが開き、ネットワーク上で Pafera ファイル サーバーを実行している他のすべてのデバイスが表示されます。

別のサーバーにファイルを送信する

すべてのデバイスは同じサブネット上にあり、同じポートで実行されている必要があることに注意してください。そのため、192.168.0.100 上にいて、送信先のデバイスが 192.168.1.100 上にある場合、スキャナーは他のデバイスを検出しません。もちろん、そのデバイスのサーバーにログインし、代わりにブラウザを使用してファイルをアップロードすることもできます。

簡単にするために、別のデバイスに送信するすべてのファイルは、サーバー ルートの下の「受信済み」というフォルダーに集められます。これは後で変更するかもしれませんが、現時点では、すべての新しいファイルを同じフォルダーに表示して、後で適切な場所に移動できるようにしておくと便利です。

受信フォルダ内の新しいファイル

ダウンロード(ホットキーl)、名前変更(ホットキーr)、移動(ホットキーm)、コピー(ホットキーc)、削除(ホットキーd)、永久削除(p)は、モバイルブラウザでのダウンロードを除いて、複数のファイルを同時に操作できます。モバイルブラウザでは、一度に1つのファイルしかダウンロードできません。ただし、永久削除は実際には 永続 削除します。削除ボタンをタッチする前に、重要なファイルのコピーを必ず別のデバイスに保存してください。

削除取り消し(ホットキーu)は、一度削除され、「.deleted」拡張子を持つファイルにのみ使用されます。 できない 永久に削除されたファイルを復元します。それらはピン留めされているわけではありません。それらは渡されました。それらのファイルはもう存在しません。それらは元ファイルです。

スライドショーの使用

スライドショー インターフェース。下部にあるものはすべてクリック可能です。

ファイル ブラウザに常に求められる機能の 1 つに、優れたスライド ショーがあります。携帯電話に息子の写真を 6,000 枚ほど入れて、見知らぬ人に見せびらかそうとしているなら、その理由は容易に理解できます。;) ほとんどの SMB クライアントには画像のプレビューやスライド ショーがないため、iPhone のファイル アプリを使用して特定の画像を探すのはかなり面倒です。

Pafera ファイル サーバーのスライド ショー機能は、いくつかの方法でアクティブ化できます。

  1. 画像のサムネイルをクリックします。
  2. システムメニューから「スライドショー」を選択します。
  3. システムメニューから「ディープスライドショー」を選択します。
  4. 検索またはディープ検索を行って、見せたいファイルを選択し、 それから 最初の画像のサムネイルをクリックします。

スライドショーの開始方法に関係なく、一番上に現在の画像の名前が付いた削除ボタンが表示され、一番下にランダム化、回転、終了、進む、戻る機能を含むツールバーが表示されます。

特定の画像番号に移動したい場合は、ツールバーの画像位置をクリックし、必要な番号を入力して、そこから移動します。

行く先の番号を選択する

スライド ショーはスワイプ ジェスチャをサポートしています。これは、実際に私が携帯電話で操作するのに好む方法です。前の画像に移動するには親指を少し左にスワイプし、次の画像に移動するには右にスワイプし、現在の画像を削除するには上にスワイプし、スライド ショーを終了するには下にスワイプするだけです。

ただし、ノートパソコンを使用している場合や、携帯電話に Bluetooth キーボードが接続されている場合は、スライドショーの使用がさらに簡単になります。

左矢印 前の画像
右矢印 次の画像
上矢印 画像を削除
下矢印/Esc スライドショーを終了
r ランダム画像
画像番号へ移動
q 反時計回りに90度回転
e 時計回りに90度回転

構成

Pafera ファイル サーバーは、同じフォルダーにある paferafileserver.cfg という JSON ファイルから、または key=value 形式のコマンド ライン引数から構成できます。両方が指定されている場合は、コマンド ライン引数によって構成ファイルの設定が上書きされます。

一般的なコマンドラインは

paferafileserver [hostname=localhost] [serverroot=/home/jim] [password=password] [ip=0.0.0.0] [port=9999]

したがって、ポート5000のすべての訪問者にJim's Picturesディレクトリを提供したい場合、次のようにします。

paferafileserver serverroot=/home/jim/Pictures port=5000

serverroot を指定しない場合は、デフォルトでホーム ディレクトリになります。

IP とポートを指定しない場合は、デフォルトで 0.0.0.0:9999 になります。

さらに、コマンドラインで次のオプションを入力すると、ユーザーが正しいパスワードを持っている場合でも、特定の機能を無効にすることができます。

disabledelete
disablerename
disablemove
disablecopy
disablenewfolder
disabledelete
disablepermanentdelete
disablesend
disableupload

すべてのコマンドライン引数は、現在のフォルダ内のpaferafileserver.cfgというJSONファイルで指定することもできます。

{
  "hostname":               "JimsLaptop",
  "password":               "SecretPassword12345",
  "disabledelete":          1,
  "disablepermanentdelete": 1
}

あなたにとって最適な方法を選択してください。

Windows の場合、実行可能ファイルへのショートカットを作成し、ショートカットで引数を指定するのが最も簡単な場合がよくあります。

Android 上の Termux の場合、実行可能ファイルを起動する最も簡単な方法は、F-Droid から Termux Widget アプリをインストールし、ウィジェットのスクリプト内でコマンド ラインを構成することです。

今後の計画

これはRustを試してみるための楽しい入門プロジェクトなので、現時点ではこれ以上の変更は予定されていませんが、もし誰かが

  1. Kotlin/Swift バージョンを書いてアプリストアに公開する
  2. このアプリを複数の言語に翻訳する
  3. さまざまなCSSテーマを作成する
  4. バックアップと復元のためのrsyncのようなアルゴリズムを実装する
  5. あるいはあなたが思いつくものなら何でも

この単純なプロジェクトへの追加があれば、ぜひ歓迎します。

いつものように、このアプリが皆さんのお役に立てば幸いです。また、ご自身の目的に合わせてカスタマイズしたい場合は、いつでも技術コンサルタントとして対応いたします。どうぞお楽しみください!

著者について

Jim は 90 年代に IBM PS/2 を入手して以来、プログラミングを続けています。現在でも、彼は HTML と SQL を手作業で記述することを好み、仕事の効率性と正確性を重視しています。