banner
xingli

xingli

猫娘爱好者

Telegraph-Image無料自建画像ホスティングにバックエンド画像管理機能が追加されました

Telegraph-Image 無料自建画像管理システムの新しいバックエンド画像管理...#

2023 年 1 月 19 日 1:51 AM 更新:以前に公開したコードは、徹夜で精神状態が良くなかったため、コードを書く際に最低限の論理エラーを犯しました。本来は if(kv 環境変数が設定されている場合)、(画像が初めて読み込まれたときに画像を kv ストレージに書き込む)べきでしたが、昨日は脳がショートしたのかどうか、if 条件文を逆に書いてしまい、if(kv 環境変数が設定されていない場合)、(画像が初めて読み込まれたときに画像を kv ストレージに書き込む)と書いてしまいました。しかし明らかに、kv 環境変数が設定されていなければ、kv ストレージに成功裏に書き込むことは不可能であり、昨日一部の大佬のデプロイにおいて:Error 1101 Worker threw exception が発生しました。kv 環境変数を設定した大佬はプログラムが正常に動作しましたが、バックエンド管理が画像を記録できませんでした。なぜならプログラムが書き込み操作を実行しないからです。この件について非常に申し訳なく思っており、皆様にご迷惑をおかけしました。現在問題は修正されたはずですので、皆様には最新バージョンのコードをデプロイしていただければと思います。また、@雾山 @mikj521 @那山很优雅 @3514088137 @hiing @telnetpig @mourner などの大佬たちの問題フィードバックにも感謝いたします。数日間徹夜を続けたため、昨日は体が本当に持たず、寝てしまいました。お返事が遅れて申し訳ありません!

以前、Github で 500 スターを超えたら画像管理機能を更新すると言ったのですが、実際には小さな画像管理プログラムが 500 スターに到達することは不可能だと思っていました。しかし、皆様の熱意に驚きました。数ヶ月のうちに 600 スターを超えてしまいました。約束したことなので、仕方なく画像管理機能を実装することにしました。

開発の過程で多くの困難に直面し、予想以上に時間がかかりました。リリースも何度も遅れ、数日間徹夜した後、ようやく春節前にこの更新を公開できました。この新春佳節が近づいていることを祝して、皆様に春節快乐をお伝えします!新しい年に自分の願いが叶いますように!

余計な話はさておき、早速コードを紹介します:

Image Hosting solution, Flickr/imgur alternative, make it easy for users to share their images. Using Cloudflare Pages and Telegraph.

以前にデプロイしていない大佬は、このリポジトリをフォークするだけで Cloudflare Pages のバックエンドでデプロイできます。

以下は今回の更新の主な内容です:

1、多くの人が待ち望んでいた画像管理機能は、デフォルトでオフになっています。オンにするには、デプロイが完了した後、バックエンドで「設定」->「関数」->"KV 名前空間バインディング"->「バインディングを編集」->"変数名" に次のように入力してください:img_url “KV 名前空間” は、事前に作成したKV ストレージを選択します。オンにした後、http (s):// あなたのドメイン名 /admin にアクセスするとバックエンド管理ページが開きます。

img

img

(KV ストレージの作成方法については、こちらを参照してください: https://github.com/xyTom/Url-Shorten-Worker/#%E5%8E%BBworkers-kv%E4%B8%AD%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E5%91%BD%E5%90%8D%E7%A9%BA%E9%97%B4)

2、バックエンド管理ページにログイン認証機能が新たに追加されました。デフォルトでもオフになっています。オンにするには、デプロイが完了した後、バックエンドで「設定」->「環境変数」->"本番環境の変数を定義"->「変数を編集」へ進みます。

“変数名” “値”

BASIC_USER = <バックエンド管理ページのログインユーザー名>

BASIC_PASS = <バックエンド管理ページのログインユーザーパスワード>

img

もちろん、これらの 2 つの値を設定しなくても、バックエンド管理ページにアクセスする際に認証は不要で、ログインステップをスキップできます。この設計により、Cloudflare Access と組み合わせて使用し、メール認証ログイン、Microsoft アカウントログイン、Github アカウントログインなどの機能を実現できます。ドメイン上の既存のログイン方式と統合でき、バックエンドのアカウントとパスワードを再度記憶する必要はありません。Cloudflare Access の追加方法については公式文書を参照してください。また、皆様のチュートリアルの共有も歓迎します。注意が必要なのは、パスを保護する必要があるのは /admin および /api/manage/* です。

3、画像総数の統計が新たに追加されました。

画像管理機能をオンにすると、バックエンドの上部で記録された画像の数を確認できます。

img

4、画像ファイル名検索が新たに追加されました。

画像管理機能をオンにすると、バックエンドの検索ボックスで画像ファイル名を使用して、管理が必要な画像を迅速に検索できます。

img

5、画像の状態表示が新たに追加されました。

画像管理機能をオンにすると、バックエンドで画像の現在の状態を確認できます {"ListType": "None", "TimeStamp": 1673984678274}

ListType は画像が現在ホワイトリストまたはブラックリストにあるかどうかを示します。None はブラックリストにもホワイトリストにもないことを示し、White はホワイトリストにあることを示し、Block はブラックリストにあることを示します。TimeStamp は画像が初めて読み込まれたタイムスタンプです。画像審査 API がオンになっている場合、ここには画像審査の結果が Label で表示されます。

img

6、ブラックリスト機能が新たに追加されました。

画像管理機能をオンにすると、バックエンドで手動で画像をブラックリストに追加できます。ブラックリストに追加された画像は常に読み込まれません。

img

7、ホワイトリスト機能が新たに追加されました。

画像管理機能をオンにすると、バックエンドで手動で画像をホワイトリストに追加できます。ホワイトリストに追加された画像は、どんな場合でも正常に読み込まれ、画像審査 API の結果を回避できます。

img

8、記録削除機能が新たに追加されました。

画像管理機能をオンにすると、バックエンドで手動で画像記録を削除できます。これにより、その画像はバックエンドに表示されなくなります。誰かが再度その画像をアップロードして読み込むまで表示されません。注意が必要なのは、画像は telegraph のサーバーに保存されているため、アップロードされた元の画像を削除することはできず、上記の 6 点のブラックリスト機能を通じて画像の読み込みを遮断することしかできません。

9、新しいプログラム実行モード:ホワイトリストモードが新たに追加されました。

画像管理機能をオンにすると、デフォルトモードに加えて、新しい実行モードが追加されます。このモードでは、ホワイトリストに追加された画像のみが読み込まれます。アップロードされた画像は審査を通過する必要があり、不適切な画像の読み込みを最大限に防ぎます。オンにするには、環境変数を設定してください:WhiteList_Mode=="true"

10、バックエンド画像プレビュー機能が新たに追加されました。

画像管理機能をオンにすると、バックエンドであなたのドメインから読み込まれた画像をプレビューできます。画像をクリックすると、拡大、縮小、回転などの操作ができます。

img

今回の更新内容は多く、重量級の更新と言えます。プログラムのバックエンドコードはほぼすべて書き直され、多くの時間がかかりました。皆様が使いやすいと感じていただければ、私が徹夜で頑張ったことを考慮して、Github で無料のスターを一つ押していただけると幸いです。また、多くの人に宣伝していただけると非常に感謝します!

すでにデプロイされている方は、どうやって更新すればいいですか?

実際、更新は非常に簡単です。上記の更新内容を参照し、まず Cloudflare Pages のバックエンドに入り、使用する環境変数を事前に設定して KV 名前空間にバインドします。その後、Github で以前にフォークしたリポジトリに行き、「Sync fork"->"Update branch」を選択するだけです。少し待つと、Cloudflare Pages があなたのリポジトリの更新を検出し、自動的に最新のコードをデプロイします。

img

いくつかの注意事項:

Cloudflare KV は毎日 1000 回の無料書き込みクォータがあります。新しい画像が読み込まれるたびにこの書き込みクォータが消費されます。このクォータを超えると、画像管理バックエンドは新しく読み込まれた画像を記録できなくなります。

毎日最大 100,000 回の無料読み取り操作があり、画像が一度読み込まれるたびにこのクォータが消費されます(キャッシュがない場合、あなたのドメインが Cloudflare でキャッシュを有効にしている場合、キャッシュがヒットしないときのみこのクォータが消費されます)。ブラックリストやホワイトリストなどの機能が無効になる可能性があります。

毎日最大 1,000 回の無料削除操作があり、画像記録が 1 件追加されるたびにこのクォータが消費されます。これを超えると、画像記録を削除できなくなります。

毎日最大 1,000 回の無料リスト操作があり、バックエンド /admin を 1 回開いたり更新したりするたびにこのクォータが消費されます。これを超えると、バックエンド画像管理が行われなくなります。

ほとんどの場合、この無料クォータは基本的に十分であり、少し超えることも可能です。超えたからといってすぐに停止するわけではなく、各クォータは個別に計算されます。特定の操作が無料クォータを超えた場合、その操作のみが停止し、他の機能には影響しません。つまり、私の無料書き込みクォータが尽きても、読み書き機能には影響がなく、画像は正常に読み込まれますが、画像管理バックエンドで新しい画像を見ることはできません。

もし無料クォータが本当に足りないと感じた場合は、Cloudflare に Cloudflare Workers の有料版を購入することができます。月額 $5 から始まり、従量課金制で、上記のクォータ制限はありません(どうして Cloudflare の宣伝をしている気がするのか?Cloudflare、早くお金を払って、広告費を清算してください /doge 手動犬頭)。

上記の注意事項から得られた結論は、数日間の反復テストを経て導き出されたもので、基本的には成立するはずですが、今後 Cloudflare が突然関連ポリシーを変更する可能性も排除できません。また、今回の更新で公開されたすべての機能は、何度も反復テストを行っています。使用中にバグが発生した場合、Cloudflare またはブラウザのキャッシュが原因である可能性が高いです。まずはキャッシュをクリアして再試行してください。また、環境変数の変更は次回のデプロイ時に反映されますので、環境変数を変更した場合は再デプロイを忘れないでください。

img

キャッシュをクリアして再デプロイしても問題が解決しない場合は、Github で issue を提起してください。今回の更新は多くの機能があり、私一人のスキルと時間には限界があるため、すべての機能や状況をテストすることは非常に難しいです。バグが発生するのは避けられません。新年の前にリリースできたことは、皆様への新年の贈り物として私にとっても非常に大変でした。開発過程で多くの困難に直面し、何度も諦めようと思いましたが、600 スター以上の多くの大佬が静かに私を支えてくれていることを思い出し、Github で小さな星を押してくれることに感謝し、皆様の好意に応えなければならないと思いました。どんなことがあっても、画像管理機能を更新しなければなりませんでした。

補足説明:変数名は img_url であり、img url ではありません。アンダースコアに注意してください!img

私も遭遇しました。カスタムドメインでもデフォルトドメインでも、アップロード後に管理ページに記録がありません。

この問題について、私の説明が不十分だったかもしれませんので、補足説明します。画像はアップロード後すぐにはバックエンドに表示されず、あなたのドメインからその画像が読み込まれる必要があります。画像をアップロードした後、手動でその画像にアクセスしてみて、バックエンドに記録があるかどうか確認してみてください。

再デプロイしたら解決しました。ありがとうございます。

ログインも設定しましたが、小さな疑問があります:フロントエンドでの画像アップロードには現在権限制限がありませんが、今後増える予定ですか...

ホワイトリストモードをオンにして画像の読み込みを制限できます。バックエンドの画像ストレージは telegraph 画像管理システムを使用しているため、フロントエンドの画像アップロードを制限しても、他の人が telegraph の公式サービスを通じて画像をアップロードできるため、フロントエンドの画像アップロードを制限する必要はあまりありません。また、あまり意味もありません。

ただし、画像の読み込みを制限することで、ドメインの安全性を最大限に確保できます。さらに、画像の読み込み制限をオンにすると、他の人がアップロードした画像が読み込まれなくなるため、他の人があなたのドメインを使用して画像をアップロードする可能性は低くなります。画像をアップロードするだけであれば、他の人は自分の画像管理システムをデプロイするか、公式の API を使用することができます。

したがって、画像の読み込みを制限し、ホワイトリストモードをオンにすれば、現時点では基本的に十分です。

無料クォータを超えた場合、どうなりますか?直接応答が停止するのか、それともアカウントが封鎖される可能性がありますか?

私がテストした限りでは、クォータを超えてもアカウントは封鎖されません。サービスが停止するかどうかは、超えたクォータによって異なります。具体的な説明はスレッド内にあります。

テスト中に KV の無料使用クォータを超えた際のスクリーンショットを追加します。参考までに、長期的に超過使用する場合は、有料プランを購入してください。 img このスクリーンショットは Demo 画像管理システムに対応する KV で、現在この画像管理システムは無料の書き込みクォータを超えており、画像管理バックエンドで新しく追加された画像を見ることはできませんが、他の機能の使用には影響しません。皆様は Demo サイトを訪れてテストすることができます:https://im.gurl.eu.org

もう少しで小さなサーバーにデプロイできます。

lamb 投稿日 2023-1-18 15:36

サポートしますが、picgo と一緒に使用できる機能を追加できますか?

picgo-plugin-telegraph-image

この大佬が書いたものを見てみてください。

BASIC_PASS BASIC_USER を設定したのに、ドメイン /admin に直接アクセスできてダッシュボードに入れました。パスワードの入力を求められませんでした。ブラウザを開いて...

画像表示に問題があります。cloudflare のバグです。文字による説明を優先してください。環境変数を設定した後は再デプロイを忘れずに行ってください。

img

cf pages は CNAME 接続をネイティブにサポートしており、直接優先 IP を設定できます。カードをバインドして SaaS を有効にする必要はありません。

1 月 19 日 4:35 AM 更新、コードロジックを最適化し、KV の書き込み数を減らし、KV の無料書き込み数が急速に消費されるのを避けるようにしました。必要な大佬は最新バージョンに更新してください。

Caxen 投稿日 2023-1-18 15:23

管理機能が必要ない場合、更新する必要がありますか?

更新する必要はありません。今回の更新は主に管理機能の追加であり、他には大きな変更はありません。しかし、実際には更新も非常に簡単です。管理機能を有効にしない場合は、Github で数回クリックするだけで済みます。

実際、更新は非常に簡単です。上記の更新内容を参照し、まず Cloudflare Pages のバックエンドに入り、使用する環境変数を事前に設定して KV 名前空間にバインドします。その後、Github で以前にフォークしたリポジトリに行き、「Sync fork"->"Update branch」を選択するだけです。少し待つと、Cloudflare Pages があなたのリポジトリの更新を検出し、自動的に最新のコードをデプロイします。

管理機能が必要ない場合は、直接 Github で以前にフォークしたリポジトリに行き、「Sync fork"->"Update branch」を選択するだけで済みます。少し待つと、Cloudflare Pages があなたのリポジトリの更新を検出し、自動的に最新のコードをデプロイします。

KV を設定した後、再デプロイをクリックしましたか?KV や環境変数を設定した後は、再デプロイしないと効果がありません。これは cloudflare の制限です。

修正【更新】Telegraph-Image 無料自建画像管理システムの新しいバックエンド画像管理...

https://hostloc.com/thread-1127284-1-1.html

(出典:グローバルホスティング交流フォーラム)

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