我们Django应用程序的用户可以回答问题并将文件附加到他们的答案中。
当前,我们正在尝试将文件存储移至Google Cloud Storage。我正在研究如何在Web客户端应用程序中使用Firebase SDK进行云存储。
Django模型(简体):
class User(models.Model):
email = models.CharField(max_length=128)
password = models.CharField(max_length=128)
class Question(models.Model):
description = models.TextField()
requester = models.ForeignKey(User, related_name='questions')
class Answer(models.Model):
question = models.ForeignKey(Question, related_name='answers')
responder = models.ForeignKey(User, related_name='answers')
attached_file_id = models.IntegerField(null=True, blank=True)
attached_file_storage_key = models.CharField(max_length=128, blank=True) # path to file in a current storage. For example, /documents/image.jpg
attached_file_name = models.CharField(max_length=128, blank=True)
问题:在某些情况下,Firebase应该拒绝对问题请求者的访问,该访问是由响应者附加的文件。例如:请求者拒绝了答案,而响应者应再次回答该问题
我们不想从Google云端存储中删除任何文件,因此我们希望能够拒绝请求者访问文件。
我阅读了几篇与Firebase云存储安全规则有关的文章。 我也阅读了描述如何使用Firebase创建Web聊天应用程序的教程,但是本教程的某些部分(描述了如何编写Cloud Storage安全规则)只是说“允许阅读”。对于这个简单的应用程序就足够了。
我的问题是,如果该用户有权访问该文件,该如何拒绝该用户访问该文件。