プロジェクトはGitHubから取得されます。
現在、1.6k の Fork と 1.1k の Star があります。
プロジェクトの README.md を操作することもできますし、この投稿を操作することもできます。
準備するもの:
- GitHub アカウント(なくても可)
- Cloudflare アカウント
- ドメイン名とそれが Cloudflare にホストされていること(ホストされていなくても可)
GitHub にログインし、プロジェクトを見つけるか、上記のリンクをクリックします。
Fork をクリックします。
直接 Fork を作成します。
次に、Cloudflare に移動し、「Workers と Pages」をクリックします。
右側の領域の「アプリケーションの作成」をクリックします。
「Pages」をクリックし、Git に接続するをクリックして、認証します。
先ほど Fork したプロジェクトを選択し、設定を開始をクリックします。
変更する必要はありません。保存してデプロイをクリックします。
GitHub アカウントがない場合、ダウンロードしてください。[直接アップロードで作成] を選択し、その後のデプロイは同じです。
デプロイが完了したら、「Workers と Pages」に戻ります。
右側にプロジェクトが追加されていることに気付くでしょう。自動的に.pages.dev のドメインが割り当てられます。
このドメインはテストの結果、プロキシなしでは開けないことがわかりました。
したがって、カスタムドメインを設定する必要があります。
プロジェクト名をクリックして、カスタムドメインに移動し、カスタムドメインの設定をクリックします。
自分のドメインを入力し、続行をクリックします。
ドメインが Cloudflare にホストされている場合、自動的に DNS が追加され、ドメインをアクティブにすることができます。
他の場合は、表示される手順に従って手動で追加する必要があります。追加が完了したら、ドメインをアクティブにクリックします。
完了したら、ドメインが有効になるのを待ちます。
カスタムドメインにアクセスします。
画像をアップロードしてみてください。
エラーが表示された場合は、再度アップロードしてください。
右側のボタンをクリックしてパスをコピーし、右側の赤い戻るボタンをクリックしてアップロード画面に戻ります。
この時点で、誰かが言ったでしょう、「前にアップロードした画像を使用したいが、パスを保存していない場合はどうすればいいですか?」
Cloudflare に戻り、「KV」をクリックします。
名前空間の作成をクリックします。
名前は自分で設定し、追加をクリックします。
プロジェクトの設定の関数をクリックします。
下にスクロールして、これを見つけます。
変数名をimg_url
に設定し、KV スペースには自分が設定したものを入力し、保存をクリックします。
プロジェクトに戻り、最新のデプロイの右側の 3 つの点をクリックし、再デプロイを選択します。
カスタムドメイン /admin を開きます。
テストの結果、画像をアップロードした後にアクセスする必要があります。管理画面に表示されない場合、私のネットワークが遅いか、バグか、それとも元々このように設定されているのかわかりません。
管理画面が表示されますが、パスワードが設定されていません。これは少し安全ではありません。画像のリンクが公開されているため、他の人が管理アドレスを見つける可能性があります。
プロジェクトに戻り、設定 > 環境変数 > 変数の編集をクリックし、ユーザー名BASIC_USER
とパスワードBASIC_PASS
を追加します。
保存してから再デプロイしてください。
管理画面に戻り、設定したログインアカウントとパスワードでログインします。
公式ドキュメントには他のログイン方法も記載されています。
もちろん、これらの値を設定しないこともできます。この場合、管理ページにアクセスする際に認証が必要ありません。ログイン手順をスキップして直接進むことができます。この設計により、Cloudflare Access を組み合わせて使用し、メールの確認コードログイン、Microsoft アカウントログイン、GitHub アカウントログインなどの機能を実現し、ドメイン上の既存のログイン方法と統合することができます。Cloudflare Access を追加する方法については、公式ドキュメントを参照してください。注意:/admin および /api/manage/ を保護する必要があります。
ドキュメントによると、画像の検閲もできるようですが、試していません。興味がある方は試してみてください。
制限事項:
- 画像ファイルは実際には Telegraph に保存されており、Telegraph ではアップロードされる画像の最大サイズを 5MB に制限しています。
- Cloudflare のネットワークを使用しているため、一部の地域では画像の読み込み速度が保証されない場合があります。
- Cloudflare Function の無料版は 1 日あたり 100,000 のリクエストに制限されています(つまり、画像のアップロードまたは読み込みの合計回数が 100,000 回を超える場合は、Cloudflare Function の有料プランを選択する必要があります)。画像管理機能を有効にした場合、KV 操作の制限もあります。制限を超える場合は、有料プランを購入する必要があります。
- Cloudflare KV には 1 日あたり 1,000 回の無料書き込み制限があります。新しい画像を読み込むたびにこの制限が消費されます。制限を超えると、画像管理バックエンドに新しい画像が記録されなくなります。
- 1 日あたり最大 100,000 回の無料読み取り操作があります。画像を読み込むたびにこの制限が消費されます(キャッシュがミスした場合のみ、ドメインが Cloudflare でキャッシュが有効になっている場合は、キャッシュミス時にのみ消費されます)。制限を超えると、ブラックリストやホワイトリストなどの機能が機能しなくなる場合があります。
- 1 日あたり最大 1,000 回の無料削除操作があります。画像のレコードごとにこの制限が消費されます。制限を超えると、画像のレコードを削除できなくなります。
- 1 日あたり最大 1,000 回の無料リスト操作があります。/admin を開いたりリフレッシュするたびにこの制限が消費されます。制限を超えると、バックエンドの画像管理が行われます。
- ほとんどの場合、この無料制限は十分に使え、少し超えることもできます。無料の書き込み制限が使い果たされた場合でも、読み書き機能は影響を受けず、画像は正常に読み込まれますが、新しい画像は画像管理バックエンドに表示されません。
- 無料の制限が十分でない場合は、Cloudflare Workers の有料バージョンを購入することができます。月額 $5 から始まり、使用量に応じて料金が発生します。上記の制限は個別に計算されるため、ある操作の制限を超えても他の機能には影響しません。つまり、無料の書き込み制限が使い果たされた場合でも、読み書き機能は正常に動作し、画像は正常に読み込まれます。
- また、環境変数の変更は次回のデプロイ時に有効になります。環境変数を変更し、特定の機能を有効または無効にした場合は、再デプロイすることを忘れないでください。