fscarmen

fscarmen

全網初公開!R2、GitHub、GitLab と Cloudflare を統合したストレージクラスターが、自動バックアップ、高速アクセス、無限の拡張を実現!画像ホスティングソリューションよりもはるかに実用的です。

動画チュートリアル#

前言とプロジェクトの特徴#

今日のファイルストレージの需要が高まる中、私は 効率的で柔軟なプライベートファイルストレージクラスター を成功裏に構築しました。これは R2、GitHub、GitLab の複数プラットフォームの利点を組み合わせた、高度に信頼性のある分散ストレージシステムです。このソリューションの核心的な特徴は以下の通りです:

  • マルチノード分散ストレージ:ファイルは戦略に従って分散保存され、単一障害点のリスクを回避します。
  • 自動バックアップと同期:データは異なるノード間で効率的に同期され、一貫性と安全性が確保されます。
  • インテリジェントなアクセス加速:Cloudflare のグローバルエッジサービスを利用し、アクセス速度が大幅に向上し、ユーザー体験が非常にスムーズになります。
  • 無限の拡張性:分散アーキテクチャのおかげで、理論的にはほぼ無限のファイルを保存できます。

これは単なる画像ホスティングソリューションではなく、コード、文書、さらにはあらゆるデータストレージに適した多機能な分散ストレージシステムです。

デプロイ条件#

プロセスとツールの紹介#

PicGo でファイルをアップロード:PicGo を使用し、s3 プラグインをインストールして、Cloudflare R2 バケットにファイルをアップロードします。

GitHub アクション 1:定期的に Cloudflare R2 バケットのファイルを GitHub に移行し、ストレージファイルを負荷分散します。

GitHub アクション 2:定期的に GitHub ノードを GitLab にミラーリングし、ファイルがすべて失われるリスクを回避します。

Worker で書き換えられたリンクを取得:Worker を通じて GitHub、GitLab、R2 のプライベートリポジトリの PAT を隠し、カスタムドメインの URL を出力します。

グローバル Edge CDN を利用してアクセスを加速:Cache Rules を通じて静的ファイルをキャッシュし、オリジンリクエストを減少させ、アクセス速度と安定性を大幅に向上させます。

GitHub で n 個のプライベートリポジトリを作成し、PAT を取得#

https://github.com/new にアクセスし、3 つのプライベートリポジトリを作成します。名前は同じプレフィックスに数字を付けて、node-1, node-2, node-3 のようにします。

image
image

この 3 つのプライベートリポジトリのために PAT を作成します。https://github.com/settings/tokens にアクセスします。

image
image
image
image

GitLab で n 個の同名プライベートリポジトリを作成し、n 個の PAT と Repo ID を取得#

https://gitlab.com/projects/new#blank_project にアクセスし、3 つの同名のプライベートリポジトリを作成します。前に作成したリポジトリの名前と完全に一致させ、数も同じにします。

image
image
image
image
image
image

n 個の CloudFlare アカウントそれぞれで R2 バケットを作成し、n 個の API キーを取得#

image
image
image
image
image
image

すべての PAT と Project ID を記録する#

image

PicGo 圧縮プラグイン s3#

PicGo をインストールした後、ソフトウェア内で s3 プラグインをインストールします。

image

カスタムリンク形式に https://&lt カスタムドメイン & gt/$fileName$extName を入力します。

image
image
image
image

ファイルパスは files/{fileName}.{extName} です。

image
image

GitHub でプライベートリポジトリを作成し、2 つの定期タスクを実行#

https://github.com/fscarmen2/pic-hosting-cluster からコードを取得し、GitHub に新しいプライベートリポジトリを作成して定期同期タスク用のリポジトリを作成し、私のリポジトリからコードをコピーします。

image
image
image
image

正式な使用プロセス#

ファイルをアップロード#

PicGo を使用してファイルを GitHub にアップロードします。ショートカットキー(デフォルトは Ctrl + Shift + P)を使用するか、ファイルを PicGo のインターフェースにドラッグアンドドロップします。

アップロードが成功すると、進捗バーは青色になります。赤色の場合は、設定に誤りがないか確認してください。アップロードが成功すると、カスタムドメインのリンクが自動的にクリップボードにコピーされます。

image
image

GitHub Action で手動で定期タスクを実行#

image
image
image
image

進階#

URL のパラメータは以下の通りです

パラメータ query説明
https://<カスタムドメイン>/< カスタムチェックパスワード >各ノードの状態を検査
https://<カスタムドメイン>/< ファイル名 >?from=r2R2 から取得することを指定
https://<カスタムドメイン>/< ファイル名 >?from=githubGitHub から取得することを指定
https://<カスタムドメイン>/< ファイル名 >?from=gitlabGitLab から取得することを指定
https://<カスタムドメイン>/< ファイル名 >?from=whereファイルと所属ノードの情報を照会

各ノードの状態を検査#

image

R2 からファイルを取得することを指定#

image

GitHub からファイルを取得することを指定#

image

GitLab からファイルを取得することを指定#

image

ファイルと所属ノードの情報を照会#

image

まとめ#

このソリューションを通じて、私たちは R2、GitHub、GitLab を統合した効率的な分散ファイルストレージクラスターを成功裏に構築しました。このアーキテクチャは、ファイルの安全性とバックアップの信頼性を向上させるだけでなく、Cloudflare のグローバル Edge CDN の加速能力を最大限に活用し、ファイルアクセスをより速く、より安定させます。

画像、コード、またはその他の重要なファイルを保存する場合、このクラスターは低コストで高効率の方法でニーズを満たすことができます。このソリューションがあなたの仕事や学びにインスピレーションと便利さをもたらすことを願っています。このクラスターに興味がある場合は、ぜひ構築を試みて、革新の楽しさを体験してください!

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。