死なないCDNリンク

失敗モード

画像が削除されても、直接のCDN URL がまだ配信していれば実際には削除されていません。AI画像プロダクトでは、あらゆるコピー経路をカバーするために削除が必要です。

Date
2026年7月3日
Author
Unexposed

削除された画像がCDNエッジキャッシュのノード間でまだ光り続けている

最も恥ずかしいプライバシーの失敗は、必ずしも侵害ではありません。URL です。

ユーザーがアプリから画像を削除します。ダッシュボードにはもう表示されません。データベースの行は消えています、または削除済みとしてマークされています、あるいはORMが好む小さな墓標フラグを付けています。誰もが4秒ほどは気分が良いです。

しかし、誰かが古いCDNリンクを開くと、画像はまだ読み込まれます。

これは、プロダクトの削除とアセットの削除が別の仕事だからです。UIはユーザーの視点からオブジェクトを取り除けますが、ストレージバケット、CDNエッジキャッシュ、サムネイルサービス、キューのリトライ用フォルダ、バックアップ経路などにはコピーが残っていることがあります。ユーザーの観点では「削除=これを持たないで済むようにする」でした。システムの観点では「削除=通常のページのレンダリングを止める」でした。

AI画像プロダクトは特に脆弱です。生成された出力はファイルとして配信されることが多いためです。パフォーマンスのためにキャッシュされるかもしれません。サムネイルが作られるかもしれません。予測可能、または長寿命のパスに保存されるかもしれません。モデレーション、分析、サポートのツールにコピーされるかもしれません。直接リンクは、まるで小さな呪われたお土産のように、インターフェースより長生きします。

修正の出発点は言葉です。アプリの表示だけを対象にした約束なら、削除を約束しないでください。実際に何が起きるのかを明確にし、その後で実装が追いつくようにします。CDNキャッシュを無効化し、ソースファイルを削除し、派生物を削除し、署名付きURLを期限切れにするなら、それで良いです。バックアップが一定期間データを保持するなら、それも明記してください。

技術的には、より安全な道は、プライベートな出力に対して公開された恒久URLを避けることです。短い有効期限の署名付きURLを使いましょう。オブジェクトキーは推測できないものに保ちます。派生物を追跡します。削除経路には、ソース、出力、サムネイル、キャッシュ、キューの残りを含めて設計します。ユーザーのように削除をテストしてください。つまり、削除前にURLをコピーし、画像を削除してから、もう一度そのURLを試します。

これは華やかなエンジニアリングではありません。誰も「キャッシュの無効化が実際にプライバシーの約束を尊重します」をローンチバナーに載せないでしょう。とはいえ、正直その自信は尊敬します。ですが、信頼はこういうところで作られます。

ユーザーがAI生成画像を削除するとき、プロダクトはインフラの残骸を探すハンティングゲームをさせるべきではありません。リンクは約束どおりに死ぬべきです。

さらに読む: “Delete My Uploads” は検証可能である必要がある理由, ホスト型ギャラリーはプロダクト機能ではない理由, そして Unexposed のデータストレージ.

Your prompt. Your model. Only your content.

Create private images with Credits, Access Tokens, and sealed requests. Encrypted in transit, run on ephemeral compute, deleted after delivery.