Google app engine 使用GAE限制对静态文件的访问

Google app engine 使用GAE限制对静态文件的访问,google-app-engine,web2py,Google App Engine,Web2py,我有一个静态文件,我不想公开。有没有办法限制app.yaml的访问权限,使其只能由自己的域加载 基于web2py的解决方案也很受欢迎,因为我正在GAE之上使用它 谢谢 您可以使用“login:required”限制对它的访问,以要求使用Google帐户登录,或使用“login:admin”限制对管理员的访问。如果您只关心滥用,那么您可能会转而考虑使用web2py身份验证。你必须遵循一些简单的规则。1) app/static中的文件是公共文件。2) 要进行身份验证的文件进入app/private。

我有一个静态文件,我不想公开。有没有办法限制app.yaml的访问权限,使其只能由自己的域加载

基于web2py的解决方案也很受欢迎,因为我正在GAE之上使用它


谢谢

您可以使用“login:required”限制对它的访问,以要求使用Google帐户登录,或使用“login:admin”限制对管理员的访问。如果您只关心滥用,那么您可能会转而考虑使用web2py身份验证。你必须遵循一些简单的规则。1) app/static中的文件是公共文件。2) 要进行身份验证的文件进入app/private。然后创建您自己的web2py操作来服务器私有的内容/

@auth.requires()
def private():
    import os
    file = os.path.join(request.folder, 'private', request.args(0))
    return response.stream(open(file,'rb'))
如果要使用基于角色的访问控制,则需要将文件名存储在数据库表中,并将组的auth.add_权限添加到记录中


如果你向web2py邮件列表提问,你会得到更快的回复和更有效的回复

我很确定这对AppEngine不起作用,因为文件不是托管在一个真正的文件系统中。这要看情况而定。我在假设文件是在开发时提供的情况下进行了回答。在这种情况下,它将在GAE上工作。如果我们谈论的是上传到应用程序中的文件,那么web2py解决方案很简单。用字段('file','upload',authorize=lambda row:row.author==auth.user\u id)和字段('author',db.auth\u user,default=auth.user\u id)制作一个表,并使用form=crud.create(db.thetable)将图像上载到表中(受GAE文件大小限制)这在本书的第3章中进行了广泛的讨论,其中的所有示例都是GAE中开箱即用的。感谢您的回复。我在这里发布而不是邮件列表,因为我希望有一个快速的app.yaml解决方案,但现在我决定采取一种完全不同的方法来完成我的任务,不涉及在GAE上使用文件。我会记住你的解决方案,以备将来使用。在发送文件之前,有什么方法可以替换吗?谢谢,尼克。至于使用login:required或login:admin限制静态文件,那么是否可以使用urllib.urlopen或类似的东西传递登录凭据,以便在运行时下载数据?有可能,是的-查看SDK源中的appengine_rpc.py,了解如何对App Engine进行身份验证调用的示例。