クラウドもドラムダンスも不要! домашний PCからファイルを共有する方法
こんな経験はありませんか?50GBのフォトライブラリや、SSDの半分を占めるディスクイメージを友達に送りたいとき。Telegramでアップロード?遅くて不便。Google DriveやYandex.Disk?容量が足りない、有料サブスクリプションが必要。FTPサーバーやNginxの設定に手を出す?一回限りのタスクには大げさすぎます。
そこで登場するのがHFS(HTTP File Server)です。このプロジェクトは、わずか1クリックでPCをファイル共有用の本格的なWebサーバーに変えてしまいます。そしてこれは新しい趣味レベルのプロジェクトではありません:Delphiで書かれた元のHFSは、2000年代のインターネット伝説だったんです。現在、このプロジェクトはTypeScriptとNode.jsで生まれ変わり、クロスプラットフォームでモダンになりました。
HFSとは
HFSは、ローカルファイルをブラウザ経由で公開できるコンパクトなWebサーバーです。バイナリを実行し、共有したいフォルダを追加すれば、リンクを知っている人就なら誰でもダウンロードできるようになります。
Pythonのhttp.serverモジュールとの主な違いは、完全な管理パネル、ユーザ管理、レジューム可能なダウンロード、そしてPCにファイルをアップロードり返す機能があることです。そして複雑な設定なしで、箱から出してすぐに動作します。
практическое применение
ホームサーバーの動画を見たり、音楽を聞いたりすることをよくあります。HFSはこの問題をシンプルに解決してくれます。
仮想ファイルシステム
ファイルを特別なフォルダにコピーする必要はありませんwww。HFSインターフェースで仮想構造を作成できます。例えば、ファイルC:\Work\Project\final_report.pdfをリンクваш-айпи/report.pdfで共有できます。元ファイルはそのまま残り、Web用の「別名」を付与するだけ です。
重量級データの即時処理
100GBのフォルダを共有する必要がある場合、HFSはアーカイブの作成が完了するまで待たせません。ユーザーが「ZIPとしてダウンロード」をクリックした瞬間、サーバーはアーカイブをリアルタイムで生成し、すぐにブラウザへのストリーミングを開始します。これにより、時間もディスク容量も節約できます。
アクセス制御と制限
公衆ネットワークでファイルを共有する場合は、アップロード速度を制限(スロットリング)して、HFSが帯域幅を全て消費しないようにできます。アカウントの作成も簡単です:例えば、友達はダウンロードのみ許可し、同僚は特定のフォルダにファイルをアップロードできるようにするといった設定が可能です。
ジオグラフィックファイアウォールとセキュリティ
設定では、特定国からのアクセスをブロックしたり、HTTPSを設定したりできます。証明書生成が組み込まれているので、OpenSSLを手動で操作する必要はありません。
技術的な側面
このプロジェクトはTypeScriptで書かれています。ビルド済みバイナリをダウンロードしたくない場合は、npx hfs@latest経由で実行できます。これはNode.jsが既にインストールされているサーバーでのクイックチェックに便利です。
HFSはほとんどどこでも動作します:Windows(バージョン10以上)、Linux、macOS、さらにはFreeBSD。コンテナ化爱好者向けに、公式のDockerイメージも用意されています。
興味深い詳細:管理パネルとフロントエンドは完全に分離されています。HTMLとCSSで外観をカスタマイズしたり、独自のプラグインを書いたりできます。現在、サムネイル生成、LDAP認証、ブルートフォース保護用のプラグインがあります。
始め方
ほとんどの人にとって最も簡単な方法は、OS用のリリースページからアーカイブをダウンロードすることです。起動後、サーバーはデフォルトでlocalhostに管理パネルを開きます。
コンソールやSSHで作業している場合は、このコマンドで素早く管理者をを作成できます:
echo "create-admin: ВАШ_ПАРОЛЬ" > config.yaml
その後、HFSが設定を読み込み、別のデバイスからブラウザでコントロールパネルにログインできるようになります。
こんな人におすすめ
HFSはセルフホスティングを重視する人のためのツールです。こんな用途に最適です:
- ローカルネットワークやインターネット越しで大きなファイルを素早く転送する。
- チーム用の一時的なファイル交換を作成する。
- ホームメディアライブラリを整理する(HFSにはオーディオとビデオ用の組み込みプレーヤーがあります)。
- 他のユーザーからファイルを集める(アップロード機能)。
このプロジェクトの素晴らしい点は、そのシンプルさです。システム管理者でなくても、2分でプロフェッショナルに見えて動作するサーバーを起動できます。クラウドサービスの制限に依存することにうんざりしているなら、HFSはデータのコントロールを取り戻す最も手軽な方法の1つです。
プロジェクトはGitHubで試すことができます。APIドキュメントや、自動ログインや検索用のURLパラメータといった隠れた宝藏を含む、詳細なWikiもあります。
関連プロジェクト