20200724のGoに関する記事は1件です。

オレトラストネットワークでちゃっちゃとファイル共有

家にファイルサーバーってあります?動かしたいけどねえ・・って事無いですか??

  • 電気代とか置き場所とかの理由で外付けUSB使ってる
  • SaaSのファイルサービスはどうしても容量課金や通信パケ代が気になる

本来、ファイルサーバーで最重要であるべきセキュリティ要件よりも、
もっと他の理由で使ってなかったりしませんか?
でも家庭ネットは信頼してますよね?だから、もっとこう、サクっと共有してえなあ。

<!-- じゃファイル共有すりゃ良い? -->

そういう人向けにAirDopあるやん

はい。でもあれってベンダーロックされてる感がないすか?
対応してないマイコンだの機器があるとやっぱファイルサーバーあればなーって思う。
OSSが頑張って実装してる例もあるけど対応機器がどんどん増えてく気はしないし。

我々は殆どの機器がしゃべれるプロトコルを知ってるはず、そうHTTP!

有線、無線関係なく、IPがあれば準備OK。それがHTTPの破壊力のスゴさ。
HTTPベースで超簡単にファイル共有!
車輪の再発明感ありますが、UXサイドに倒した実装を念頭に作ってみました。

/* ここにいるよ! */

このツールはこんな機能があります。

  • Windows、Linux、有線ディスクトップ、無線ノート、ラズパイなど他機種対応
  • Go言語なのでバイナリいっこ置けば準備OK
  • 二重同期しないようファイルのハッシュ値を参照して同じファイルは同期除外にします
  • IPとか調べないでも同期してくれる自動同期モードを付けました

autosync.gif

詳しくはリポジトリ見てくださいな。

=begin こんな使い方もアリ! =end

単純なHTTPのクラサバ構成なので柔軟性がとても高いです。こんな使い方もできるぞ。

パーティ転送モード

メールとかSlackで
「会議の資料は以下です。各自入手してください。
 \fileserver\会議20200715\dookie.pptx

あら、面倒!?

  • 会議始まったらツールを自動サーバモードで起動
  • 会議に来た人にトークンを教えて自動クライアントで起動
  • 多人数にどんどこ転送開始!

よし、拡散!

party.gif

バケツリレー転送

A、B、Cサーバにhostsとか同じデータを配布したい。
でもA→B→Cでセグメントが違うのでrsyncとかで一発で配布できない。

あら、面倒!?

  • C→B→Aの順にポート番号を変えてサーバモードとクライアントモードで2つ起動する。
  • Aにファイルを置くと順繰りでCまで転送されていきます。

よし、多重!

relay.gif

VPN踏み台転送

SSHで入る踏み台とデータ同期しておきたい。でもWinSCPとかツールインストールするの情シスの許可要るよなー

あら、面倒!?

  • 転送先でサーバモードで起動する。バイナリ一個置くだけ。
  • お手元の端末からSSHポートフォワードで転送先のサービスポートに接続
  • バイナリ消して証拠隠滅

よし、転送!

ssh.gif

=pod ということで =cut

HTTPつよいのは分かるけど、ファイアウォールが立ちはだかってるって?
大丈夫だよ、家庭内はなんだし、全開放しようぜ。w
というか家族が同居している場合は家庭内ネットワークはゼロトラストネットワーク

次号、スマホ用クライアント開発編に続く!

追伸

「Syncthingって知ってる?参考になると思うから使ってみたらどうだい?」
というアドバイスを頂きましたので調査中・・・
プロダクトとして一㍉も敵わないが何か実装できるとこないかなーって思ってるところ。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む