如何处理烧瓶上的静态/媒体文件许可?

我已经创build了一个应用程序,其中媒体文件(用户上传的文件,而不是css / js)由子域上的另一台服务器静态提供,如media.example.com/path/to/image.jpg 。 我怎样才能限制对图像的访问,以便只有某些login并获得许可的人才能看到它们?

请注意,页面上显示图像的保留工作正在进行,但我想进一步限制对图像本身的访问,所以图像url不能共享。

谢谢

通过Flask而不是Web服务器来处理你的图像,像其他任何具有权限的url一样对待它。 Nginx显然是一个更好的选择来服务你的静态文件,但它不会与Flask集成。

你似乎正在寻找一个解决方案,在这个解决方案中,web服务器(nginx)知道只有应用程序(瓶颈)知道的东西:请求的浏览器是否认证了他们的会话。

也许有可能设计出一些狡猾的解决方案,让应用程序留下足够的线索让nginx来检查,但是这并不常见,如果你提出这个问题,可能太棘手了 – 请求你完善一个可靠的解决方案。

例如,应用程序可能会写入一个htaccess文件,并通过浏览器实现一个auth_basic_user_file 。 但我不会推荐它。

或者你也可以通过将静态文件放入随机创建的子目录来尝试安全性 。 例如/static/12340A9BN34/secret_img.jpg 。 但是,这里再也没有真正的安全。 如果你有路径:你有文件。

聪明的人可能会发布一个很好的答案,告诉你如何去做,但是我怀疑有一种方法可以让你通过应用程序级的知识(平凡地)在web服务器级别限制访问。