在Google Cloud Storage中,我希望PUBLIC(所有用户)能够上传新文件并下载现有文件,但是我不希望PUBLIC能够覆盖已有文件。
背景:通常情况下,上传和下载URL由我的应用程序确定。因此在正常情况下没有问题,因为应用程序保证写入时URL始终是唯一的。但是恶意用户可能会黑掉我的应用程序,从而有可能上传文件(不好),并覆盖现有文件(非常糟糕)。
我知道可以通过代理App Engine或使用签名URL来解决这个问题,但由于时间限制,我正在尝试避免这些方法。及时处理对我很重要,因为我的应用程序几乎实时地处理文件,连续两个请求的额外延迟仅1,000毫秒就太长了。
是否可能以一种配置云存储的方式,以便在上传期间发现已经存在的文件时返回错误,例如:
Bucket:PUBLIC具有写访问权限 单个文件:PUBLIC具有读取访问权限
那样行吗?如果bucket和文件ACL存在矛盾,GCS会发生什么?在上面的例子中,bucket将允许写访问,但是如果上传命中只读访问的已存在文件,GCS会接受这样的请求吗?还是GCS会认为此时文件已不存在,并用新内容替换它?
非常感谢任何其他有可能起作用的方法。
背景:通常情况下,上传和下载URL由我的应用程序确定。因此在正常情况下没有问题,因为应用程序保证写入时URL始终是唯一的。但是恶意用户可能会黑掉我的应用程序,从而有可能上传文件(不好),并覆盖现有文件(非常糟糕)。
我知道可以通过代理App Engine或使用签名URL来解决这个问题,但由于时间限制,我正在尝试避免这些方法。及时处理对我很重要,因为我的应用程序几乎实时地处理文件,连续两个请求的额外延迟仅1,000毫秒就太长了。
是否可能以一种配置云存储的方式,以便在上传期间发现已经存在的文件时返回错误,例如:
Bucket:PUBLIC具有写访问权限 单个文件:PUBLIC具有读取访问权限
那样行吗?如果bucket和文件ACL存在矛盾,GCS会发生什么?在上面的例子中,bucket将允许写访问,但是如果上传命中只读访问的已存在文件,GCS会接受这样的请求吗?还是GCS会认为此时文件已不存在,并用新内容替换它?
非常感谢任何其他有可能起作用的方法。