gpt4 book ai didi

google-app-engine - 配置 GCS 存储桶以允许公开写入但不允许覆盖

转载 作者:太空宇宙 更新时间:2023-11-03 15:36:32 31 4
gpt4 key购买 nike

在 Google Cloud Storage 上,我希望 PUBLIC (allUsers) 能够上传新文件和下载现有文件,但我不希望 PUBLIC 能够覆盖现有文件。

背景:上传和下载 URL 通常由我自己的应用程序确定。所以在正常情况下没有问题,因为应用程序保证 URL 在写入时始终是唯一的。但是恶意用户可以破解我的应用程序,然后可能能够将文件(坏)上传到我的云存储并覆盖现有文件(非常坏)。

我知道我可以通过 App Engine 代理或使用签名 URL 来解决这个问题,由于时间限制,我试图避免这种情况。及时处理至关重要,因为我的应用程序(几乎)实时处理文件,处理两个连续请求的额外延迟仅 1,000 毫秒就太长了。

是否可以将云存储配置为在上传过程中遇到现有文件时返回错误,例如:

存储桶:PUBLIC 具有 WRITE 访问权限单个文件:PUBLIC 具有 READ 访问权限

那行得通吗?如果存储桶和文件 ACL 相互矛盾,GCS 会发生什么情况?在上面的示例中,存储桶将允许写入访问权限,但是如果上传命中一个具有只读访问权限的现有文件,GCS 是否会接受此类请求,或者 GCS 是否会认为该文件此时已经不存在并将其替换为新内容?

任何其他可能有效的方法将不胜感激。

最佳答案

您想在存储桶上设置这些 IAM 角色:

  • roles/storage.objectCreator
  • 角色/storage.objectViewer

https://cloud.google.com/storage/docs/access-control/iam-roles状态:

“objectCreator 允许用户创建对象。不授予查看、删除或覆盖对象的权限。”

关于google-app-engine - 配置 GCS 存储桶以允许公开写入但不允许覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25352935/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com