>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン 組み込み セキュリティ
JavaScript

中間サーバーを介さずに、1クリックで100カ所のファイルホストにファイルをアップロードする方法

大きなアーカイブ、ソフトウェアビルド、ビデオなどを複数のファイルホストに共有しなければならない経験は誰にでもあるでしょう。ブラウザのタブを開いて手動でアップロードするのは本当に骨の折れる作業です。1つのサービスのアップロードを待ち、リンクをコピーして次のサービスを開き、キャプチャ認証をクリアし、それを延々と繰り返します。

通常、このような状況ではMirrored.toやMultiUpのようなWebマルチアップローダーに頼りますが、それぞれに問題があります:無料ユーザーのファイルサイズ制限が厳しいこと、半数の機能に登録が必要なこと、鬱陶しい広告、そして何より重要なのは、ファイルがまず誰かのIntermediateサーバーに送られることです。

PolyUploader banner

最近PolyUploaderという興味深いプロジェクトを見つけました。ディスクからファイルを選択(または直接リンクでダウンロード)し、お好みのホストに同時にプッシュするオープンソースのデスクトップアプリケーションです。サポートされているホストの一覧は印象的です。リポジトリのテーブルには133件ものホストが記載されています。Gofile、1fichier、Turbobit、Catbox、Pixeldrainなどの人気サービスの他、DoodStream、StreamWish、Voeなどの動画専用ホストも含まれています。

PolyUploader showcase

著者がアーキテクチャに組み込んだ実用的な機能をいくつかご紹介します:

  • アカウント不要のアップロード。133件のホストのうち96件が完全に匿名モードで動作します。登録もログインも不要で、ボタンを押すだけでリンクが手に入ります。
  • 自有APIキーの接続。1fichier、KrakenFiles、Nitroflareでプレミアムまたはパーソナルアカウントをお持ちの場合、設定画面にキーを入力できます。そうすればアップロードは自有のプロファイルに、自前の制限付きで送られます。
  • リンク保護とバンドル。アップロード後、アプリケーションは受け取ったリンクを1つのリストにまとめます。1つのクリーンなリンクにパッケージしたり、PrivateBin、Cryptgeon、SafeLinking、Filecryptで暗号化したりできます。
  • アップロードプロファイル。毎回何十ものチェックボックスをクリックするのが面倒な場合、ホストのセットを異なるタスク用の別々のプリセットとして保存できます。
  • ローカル履歴。PolyUploaderはファイルはどこにいつアップロードしたかを記憶し、リンクのおおよその有効期限を表示し、ホストが対応していればクイック削除ボタンを提供します。
インターフェーススクリーンショット single_upload multiple_upload history api_keys profiles settings_indows_context_menu

PolyUploaderでできること

プログラムの主な機能はシンプルです:ファイルを選択し、希望のサービスのチェックを入れ、プロセスを開始します。サポートされているホストの一覧は印象的です。リポジトリのテーブルには133件ものホストが記載されています。その中にはGofile、1fichier、Turbobit、Catbox、Pixeldrainなどの人気サービスの他、DoodStream、StreamWish、Voeなどの動画専用ホストも含まれています。

PolyUploader showcase

著者がアーキテクチャに組み込んだ実用的な機能をいくつかご紹介します:

  • アカウント不要のアップロード。133件のホストのうち96件が完全に匿名モードで動作します。登録もログインも不要で、ボタンを押すだけでリンクが手に入ります。
  • 自有APIキーの接続。1fichier、KrakenFiles、Nitroflareでプレミアムまたはパーソナルアカウントをお持ちの場合、設定画面にキーを入力できます。そうすればアップロードは自有のプロファイルに、自前の制限付きで送られます。
  • リンク保護とバンドル。アップロード後、アプリケーションは受け取ったリンクを1つのリストにまとめます。1つのクリーンなリンクにパッケージしたり、PrivateBin、Cryptgeon、SafeLinking、Filecryptで暗号化したりできます。
  • アップロードプロファイル。毎回何十ものチェックボックスをクリックするのが面倒な場合、ホストのセットを異なるタスク用の別々のプリセットとして保存できます。
  • ローカル履歴。PolyUploaderはファイルはどこにいつアップロードしたかを記憶し、リンクのおおよその有効期限を表示し、ホストが対応していればクイック削除ボタンを提供します。
インターフェーススクリーンショット single_upload multiple_upload history api_keys profiles settings_indows_context_menu

内部構造

このプロジェクトはTauriの上に構築されています。ユーザーインターフェースはTailwind CSSを使用した標準的なWebスタックで構築され、システムロジック、ネットワーク、ファイル操作はRustバックエンドで実行されます。

そのため、Electronベースの代替品と比較して、アプリケーションは軽量でRAM使用量が最小限に抑えられます。

最も興味深いエンジニアリングソリューションは、ブラウザエンジンの制限に関連しています。Webインターフェースが100の外部サイトに直接リクエストを送信すると、すぐにCORSエラーとクロスサイトCookieの問題に直面します。

著者はこれをエレガントに解決しました。Rustバックエンド内にローカルHTTPプロキシが組み込まれています。アプリケーションの起動時に軽量サーバーがポートでスピンアップします。

プロキシはターゲットサイトへのトラフィックを転送し、必要なヘッダーを挿入して、インターフェースに応答を返します。ブラウザのセキュリティポリシーを回避する必要は一切ありません。

Medalの裏側

著者はREADMEで正直に認めているように、趣味で勉強之余暇に一人でプロジェクトを開発しています。そして100以上のホストを正常に動作させることは骨の折れる作業です。

多くのサイトには公式APIがなく、ファイルをアップロードするにはブラウザの動作をエミュレートし、フォームスクリプトを解析し、cURLリクエストをコードに変換する必要があります。サービスがレイアウトや保護を変更すると、次のパッチまでアップロードが壊れてしまいます。

さらに、アプリケーションは現在、異なるローカルファイルのバッチをバッチ処理用にキューに入れることができません。特定のファイルを選択して数十のミラーに複製します。

プロジェクトには匿名テレメトリが含まれています。アプリケーションはファイルパスや最終リンクなしで、ホスト名とアップロード日を著者のサーバーに集計統計として送信します。ネットワークアクティビティに根本的に反対の場合は、APIコードもGitHubで公開されているため、自分でロジックを簡単に確認できます。

試してみる方法

最も簡単な方法は、リポジトリのReleasesセクションを確認することです。Windows(インストーラー)、Linux(AppImage、deb、rpmパッケージ)、macOS(dmgイメージ)のビルド済みパッケージがあります。

バイナリを自分でビルドしたい場合は、RustとTauriCLIがインストールされている必要があります:

完成したインストーラーはディレクトリに表示されます。

誰が便利に使えるか

このプロジェクトは、ソフトウェアリリース、ダンプ、メディアファイル、バックアップを定期的にアップロードし、メインのストレージが停止した場合に信頼性の高いミラーを必要とする人々に適しています。

PolyUploaderは、データをサードパーティのWebミラーに信頼委ねる必要性を排除し、多くのルーティン時間を節約します。プロジェクトが目に留まった場合は、GitHubで著者にスターを付けてください—そのようなホストベースのソロメンテナンスは本当に大きな忍耐を必要とします。

関連プロジェクト