一般的なSNSのようなユーザが投稿した画像を閲覧可能なサイトがあったとして、その画像は限られた範囲にしか公開できないものだとしたいときに
どのような制限で限られたユーザのみ閲覧可能を実現するのがベストプラクティスでしょうか
現状は以下のように考えております
サーバアプリケーション:ec2, lambda, ecs等 DB:RDS ユーザがアップしたコンテンツ:S3 サーバアプリにて画像がpostされたときにランダム文字列を生成しファイル名とする。 S3へアプリからputObjectを行い、RDSへランダム文字列を公開範囲と紐付けて保存する cloudFrontまたはS3をパブリック公開し、直接のURLでのアクセスを可能とする サーバアプリは画像をリクエストされたときに、公開範囲内のユーザからのリクエストであればその画像のS3内のパスを返却する
上記実装でランダム文字列を当てられない限りは外部からのアクセスは不可かと思いますが、URLさえ当ててしまえば誰でも画像が取得できてしまうのは如何なものかと思い。。
なにか正しいやり方が他にあるのでしょうか?
サーバアプリでbase64エンコードして返却してクライアントアプリで画像に戻したりするべきなんですかね?
助言や参考になるサイトなどありましたらお願い致します
追記
試しにtwitterで鍵アカの人の画像urlコピーしてログアウト後アクセスしたら画像取得できたので
そういうものだと考えて良さそうな気がしてきました
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/21 14:10
2021/05/21 14:34
2021/05/22 11:23