我有一个不想公开的静态文件。有没有办法限制 app.yaml 的访问,使其只能由自己的域加载?
基于 web2py 的解决方案也受到欢迎,因为我在 GAE 之上使用它。
谢谢!
我有一个不想公开的静态文件。有没有办法限制 app.yaml 的访问,使其只能由自己的域加载?
基于 web2py 的解决方案也受到欢迎,因为我在 GAE 之上使用它。
谢谢!
您可以使用“登录:必需”来限制对它的访问,以要求使用 Google 帐户登录,或者使用“登录:管理员”将其限制为仅限管理员。如果您只关心滥用问题,您可能希望改为查看DOS API。
我假设您想为此使用 web2py 身份验证。你必须遵循一些简单的规则。1) app/static 中的文件是公共文件。2)您要进行身份验证的文件放在 app/private 中。然后创建您自己的 web2py 操作来服务 private/ 的内容
@auth.requires()
def private():
import os
file = os.path.join(request.folder, 'private', request.args(0))
return response.stream(open(file,'rb'))
如果要使用基于角色的访问控制,则需要将文件名存储在数据库表中,并将 auth.add_permission 存储到记录中的组中。
如果您向 web2py 邮件列表提问,您将获得更快的响应和更有效的响应。