死なないCDNリンク
失敗モード
画像が削除されても、直接のCDN URL がまだ配信していれば実際には削除されていません。AI画像プロダクトでは、あらゆるコピー経路をカバーするために削除が必要です。
- Date
- 2026年7月3日
- Author
- Unexposed

最も恥ずかしいプライバシーの失敗は、必ずしも侵害ではありません。URL です。
ユーザーがアプリから画像を削除します。ダッシュボードにはもう表示されません。データベースの行は消えています、または削除済みとしてマークされています、あるいはORMが好む小さな墓標フラグを付けています。誰もが4秒ほどは気分が良いです。
しかし、誰かが古いCDNリンクを開くと、画像はまだ読み込まれます。
これは、プロダクトの削除とアセットの削除が別の仕事だからです。UIはユーザーの視点からオブジェクトを取り除けますが、ストレージバケット、CDNエッジキャッシュ、サムネイルサービス、キューのリトライ用フォルダ、バックアップ経路などにはコピーが残っていることがあります。ユーザーの観点では「削除=これを持たないで済むようにする」でした。システムの観点では「削除=通常のページのレンダリングを止める」でした。
AI画像プロダクトは特に脆弱です。生成された出力はファイルとして配信されることが多いためです。パフォーマンスのためにキャッシュされるかもしれません。サムネイルが作られるかもしれません。予測可能、または長寿命のパスに保存されるかもしれません。モデレーション、分析、サポートのツールにコピーされるかもしれません。直接リンクは、まるで小さな呪われたお土産のように、インターフェースより長生きします。
修正の出発点は言葉です。アプリの表示だけを対象にした約束なら、削除を約束しないでください。実際に何が起きるのかを明確にし、その後で実装が追いつくようにします。CDNキャッシュを無効化し、ソースファイルを削除し、派生物を削除し、署名付きURLを期限切れにするなら、それで良いです。バックアップが一定期間データを保持するなら、それも明記してください。
技術的には、より安全な道は、プライベートな出力に対して公開された恒久URLを避けることです。短い有効期限の署名付きURLを使いましょう。オブジェクトキーは推測できないものに保ちます。派生物を追跡します。削除経路には、ソース、出力、サムネイル、キャッシュ、キューの残りを含めて設計します。ユーザーのように削除をテストしてください。つまり、削除前にURLをコピーし、画像を削除してから、もう一度そのURLを試します。
これは華やかなエンジニアリングではありません。誰も「キャッシュの無効化が実際にプライバシーの約束を尊重します」をローンチバナーに載せないでしょう。とはいえ、正直その自信は尊敬します。ですが、信頼はこういうところで作られます。
ユーザーがAI生成画像を削除するとき、プロダクトはインフラの残骸を探すハンティングゲームをさせるべきではありません。リンクは約束どおりに死ぬべきです。
さらに読む: “Delete My Uploads” は検証可能である必要がある理由, ホスト型ギャラリーはプロダクト機能ではない理由, そして Unexposed のデータストレージ.