为什么 gsutil cp 需要在版本化存储桶上进行 storage.objects.delete ?

2024-02-23

我正在使用服务帐户将文件上传到具有版本控制的 Google Cloud Storage 存储桶。我想将服务帐户权限保持在最低限度,它只需要上传文件,所以我不想授予它删除文件的权限,但上传失败(仅在流式传输所有内容之后!),说它需要删除权限。

难道不应该创建一个新版本而不是删除吗?

这是命令:

cmd-that-streams | gsutil cp -v - gs://my-bucket/${FILE}
ResumableUploadAbortException: 403 [email protected] /cdn-cgi/l/email-protection does not have storage.objects.delete access to my-bucket/file

我已经仔细检查了存储桶上是否启用了版本控制

> gsutil versioning get gs://my-bucket
gs://my-bucket: Enabled

许可storage.objects.delete如果您正在执行,则需要gsutl cp命令按照云存储 gsutil 命令 https://cloud.google.com/storage/docs/access-control/iam-gsutil.

命令:cp

所需权限:

  • storage.objects.list*(用于目标存储桶)
  • storage.objects.get(对于源对象)
  • storage.objects.create(用于目标存储桶)
  • storage.objects.delete**(对于目标存储桶)

**仅当您不使用 -n 标志并且插入的对象与已插入的对象同名时才需要此权限 存在于桶中。

Google 文档建议使用 -n (不要覆盖现有文件),以便storage.objects.delete不会被要求。但是您的用例使用版本控制,您将需要覆盖,因此您将需要添加 storage.objects.delete关于您的权限。

我在启用了存储桶版本控制且只有 1 个版本的情况下对此进行了测试。具有角色的服务帐户存储对象创建器和存储对象查看器 https://cloud.google.com/storage/docs/access-control/iam-roles.

See screenshot for the commands and output: enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 gsutil cp 需要在版本化存储桶上进行 storage.objects.delete ? 的相关文章

  • 与 Google Cloud 存储桶相比,指标浏览器中可以看到额外的存储桶

    与云存储存储桶探索相比 度量资源管理器中提供的额外存储桶信息很少 这似乎是旧的删除存储桶 但是 它出现在公制资源管理器中 它出现在这里有什么原因吗 此外 还有一些存储桶在存储资源管理器中可见 但在指标资源管理器中未显示 请注意 这不是在 2
  • 尝试上传到使用多个元数据生成的 GCP 签名网址时收到 403

    我生成了一个 GCP 签名网址 标头中包含两个元数据值 例子 x goog meta reviewer 简 x goog meta author 杰克 当我尝试将文件上传到生成的签名 URL 并在标头中设置元数据时 我收到 403 禁止请求
  • Flink 检查点到 Google Cloud Storage

    我正在尝试为 GCS 中的 flink 作业配置检查点 如果我在本地运行测试作业 没有 docker 和任何集群设置 一切正常 但如果我使用 docker compose 或集群设置运行它并在 flink 仪表板中使用作业部署 fat ja
  • Google Storage 的 CORS 策略允许来自我的来源,但不存在“Access-Control-Allow-Origin”标头

    我是 CORS 配置的新手 并试图弄清楚这一点 但根据文档 我的设置看起来是正确的 我希望你能帮我看看我错过了什么 我的代码正在尝试上传 PUT 使用签名 URL 直接将文件保存到 Google 存储 访问 XMLHttpRequest 从
  • Google 云存储桶的加载时间缓慢

    目前 我正在从一个网站加载图像谷歌云存储桶 我的印象是多区域谷歌云存储桶应该是互联网上加载图像最快的方式之一 然而 情况似乎并非如此当我比较我的网站与竞争对手的瀑布图像加载时间时 比我的好很多 我可以做些什么来缩短 Google 云存储图像
  • 如何使用Python以附加模式打开GCS存储桶中的文件?

    我查看了所有相关问题 我所能找到的只是上传到 GCS 而不是写入 我不想上传文件或创建新文件 我需要以附加模式打开位于谷歌云存储桶中的文件 即如果它不存在则创建它并使用 python 写入到它的末尾 如果有人能指出我正确的方向 我将非常感激
  • 从 Google 云存储中删除文件

    因此 我在 appengine 上启动并运行了一个 django 应用程序 并在用户上传文件时让它创建文件 我遇到的问题是试图弄清楚如何删除它们 我创建它们的代码看起来像 from google appengine api import f
  • 使用python将数据写入谷歌云存储

    我找不到使用 python 将本地计算机中的数据集写入谷歌云存储的方法 我进行了很多研究 但没有找到任何与此相关的线索 需要帮助 谢谢 简单的例子 使用谷歌云 https googlecloudplatform github io goog
  • 如何使用java上传谷歌云存储中的文件

    我已经尝试使用java在Google云存储中上传文件很长时间了 通过浏览我找到了这段代码 但无法准确理解 任何人都可以定制这个以在 GCS 中上传文件吗 Given InputStream inputStream object data e
  • Git 大文件存储与 Google 云存储

    我是该项目的一部分 我们使用 git 存储库托管在谷歌云源代码库 https cloud google com source repositories 现在我们使用谷歌云存储 https cloud google com storage 存
  • 如何在 .net 中为 Google 云存储签名 url

    我想知道如何使用 net中的谷歌云存储类生成signurl 我已经根据要求创建了字符串 GET 1388534400 bucket objectname 但我现在想用 p12 密钥签署这个 url 然后想让它变得 url 友好 该库没有显示
  • 签名 URL 在过期日期后仍然有效

    我创建了一个签名 URL 有效期为 2 天 尽管过期 但它仍然有效 我希望它给出一些错误 3XX 4XX 测试脚本 https gist githubusercontent com forvaidya 984003008b0603ca679
  • 我可以使用元数据值搜索 Google Cloud Storage Bucket吗?

    我在 Google Cloud Storage Bucket 中大量使用元数据 现在我有一个用例 我需要使用一些元数据字段值来搜索文件 我已经查看了整个文档 https cloud google com storage docs gsuti
  • 从云函数在 Google Cloud Storage 中创建新的 csv 文件

    第一次使用 Google 云存储 下面我有一个云函数 每当 csv 文件上传到时就会触发该函数my folder在我的桶里 我的目标是在同一文件夹中创建一个新的 csv 文件 读取上传的 csv 的内容并将每一行转换为将进入新创建的 csv
  • 使用 NodeJS 从 GCP 存储下载对象

    我在用着 google cloud 存储 https www npmjs com package google cloud storage从节点应用程序访问 Google Cloud Storage 存储桶内的对象 但我无法使其工作 我已在
  • 将 gsutil 与谷歌驱动器(不是谷歌云存储)一起使用

    gsutil https cloud google com storage docs gsutil csw 1 gettingstarted use 博托配置文件 https cloud google com storage docs gs
  • Google Cloud Storage (GCS) 中的文件数量有限制吗?

    我相信不应该有任何限制 但只是想确认一下 官方文档中没有提及 Google Cloud Storage GCS 中的文件数量有限制吗 如果 GCS 中有大量文件 是否会对性能 访问和写入操作 产生影响 文件名长度是否有限制 因为我可以使用文
  • 媒体的 Google Cloud Storage 签名网址

    我已经建立了一个视频网站 为用户提供 m3u8 和关联的 ts 文件 我不希望媒体文件免费可用 所以我所做的是 当用户在网站上时 在 mysql 中使用他们的 IP 和令牌创建一个会话 当他们请求特定媒体子域 mp4 domain com
  • Firebase Cloud Storage - 使用元数据上传 -

    我希望从浏览器上传带有元数据的文件 以便通过云功能正确识别和处理文件 在客户端上 我的上传器代码如下所示 uploadTaskPromise async function file return new Promise resolve re
  • 如何使用rest api下载Google Cloud Storage中的文件

    场景 与dcm API相关的存储桶中存储有多个文件夹和多个文件 点击 展示 每日聚合文件等 https console cloud google com storage browser dcmaccountno https console

随机推荐

  • RouterLink 在 Angular 6 中不起作用

    我正在观看 Brad Traversy 教程进行编码 我确实按照说的做了 这是我的 app module ts import BrowserModule from angular platform browser import NgModu
  • 在 phpoffice/phpword 上添加图表

    我知道如何在 PHPExcel 上添加图表 但我还需要在 docx 文件上插入图表 是否可以使用 phpoffice phpword 操作图表 如果不可能 您知道适合这项工作的好库吗 实际上不可能在 PHPWord 文档中添加图表 但该功能
  • 选择范围中的第一个字母 ( PostgreSQL )

    我正在尝试从单词的第一个字母在某个范围内的表中进行选择 例如 a f 我尝试使用这样的 where 子句 WHERE lower substring title from 1 for 1 IN ARRAY a k t 希望我稍后能找到一种动
  • 浏览器和凉亭。规范方法

    我现在使用 npm 中无法开箱即用的软件包的方式是这样的 package json 有 napa angular angular bower angular angular animate angular bower angular ani
  • 这个指针转换是否违反了严格的别名规则?

    这是 Quake III Arena 的快速反平方根实现 float Q rsqrt float number long i float x2 y const float threehalfs 1 5F x2 number 0 5F y n
  • GDB:创建局部变量?

    我正在使用 Xcode 的调试器 当停在断点处时 是否可以在 GDB 命令提示符中键入命令来创建局部变量 如果是这样 怎么办 请举个例子 我知道我可以在代码中完成它 然后重新编译程序 但我正在寻找一种更快的方法 如果您不需要在代码中引用变量
  • ABCpdf 转换 html 锚点以跳转到同一 PDF 中的另一个页面

    我使用 ABCpdf 动态生成 PDF 其中包含一个目录 该目录将链接到同一 PDF 中的其他页面 问题是 HTML 中锚标记的路径更改为临时文件的绝对路径 例如 ABCpdf 将呈现链接的 href a href elementId Li
  • 如何检查整数中的重复序列

    我有一个字母数字字符串 我想检查其中的整数模式重复 而且它们应该是连续的 Example 12341234qwe应该告诉我1234被重复 1234qwe1234 should NOT告诉我1234重复 因为它不连续 12121212应被视为
  • 如何向 select2 放置元素添加特定类?

    我通过 css 定制了 select2 及其通用类和 id 现在 我正在尝试自定义一个特定的类 该类将提供给 select2 然后在 css 中应用到它 我的问题 不是每个说的选择 而是它的删除 带有类的 div选择2拖放 附加到正文 我如
  • 常量之间的区别。指针和引用?

    常量指针和引用有什么区别 常量指针顾名思义是不能再次绑定的 参考的情况也是如此 我想知道在什么样的情况下 其中一种会比另一种更受青睐 他们的 C 标准和实现有何不同 cheers const 指针有 3 种类型 Data that p po
  • 构建 clang 示例时出现致命错误:未找到“type_traits”文件 #include

    我正在尝试建立打印函数名称 http llvm org viewvc llvm project cfe trunk examples PrintFunctionNames PrintFunctionNames cpp view markup
  • 抛出 WebApplicationException 时 Jersey 会产生意外的默认媒体类型

    我正在使用 JAX RS API 开发一个 Web 服务 并以 Jersey 1 17 作为我的实现 我希望客户可以在 JSON 和 XML 之间进行选择 他们使用AcceptHTTP 标头 当客户端不包含以下内容时 我希望 JSON 成为
  • 无法单击元素:Splinter / Selenium 中的 ElementClickInterceptedException

    我正在尝试抓取页面 但有时无法单击链接 按钮 当网页加载时 loadingWhiteBox 将首先出现 然后在几秒钟后消失 但它会保留在HTML代码中 只要该框出现在网站上 我就无法单击该链接 并且得到以下错误消息 selenium com
  • 检索 ImageView 的坐标

    我想知道是否可以获取 ImageView 的左侧和顶部坐标 我在 ScrollView 内的相对布局内有 2 个 ImageView 我尝试检索 ImageView 的矩阵matrix iv getImageMatrix 但这没有帮助Mat
  • 即使按下 cancel() 按钮,Ionic 2 onDidDismiss() 也会保存

    我的 Ionic 2 应用程序出现问题 到目前为止 我已经构建了一个项目列表页面 其中的每个项目都导航到详细信息页面 在详细信息页面 您可以编辑并选择保存或取消任何更改 保存效果很好 问题是onDidDismiss 即使关闭函数不 不应该将
  • 如何复制一个小部件的 GTK 样式并将其应用到另一个小部件?

    我当前的 GTK 弹出窗口如下所示 请注意 它采用深色氛围颜色主题 GTK3 8及以后版本有GTK菜单按钮 https developer gnome org gtk3 3 8 GtkMenuButton html 弹出窗口看起来像这样 请
  • 如何获取 Linux 中进程的进程树跟踪/日志?

    我想知道脚本启动哪些可执行文件以及以什么顺序 并递归地跟踪这些可执行文件 例如 假设我这里有一个 bash 脚本 称为 abc sh bin bash ls gcc 我想使用 trace log 命令 运行此脚本并得到如下内容 abc sh
  • pandas to_dict 具有 python 本机日期时间类型而不是时间戳

    我有一个pandas DataFrame df其中包含Timesatamp列 我希望创建一个行迭代器 通过iter 方法或通过to dict from df哪里的Timesatamp值是 pythondatetime 我试过这样做 for
  • 如何在Azure云上部署Spring Cloud微服务

    我正在使用 Spring Cloud 和 Netflix Eureka 进行微服务开发 现在我想在Azure上部署这些微服务 我试着遵循这个Link https azure microsoft com en in documentation
  • 为什么 gsutil cp 需要在版本化存储桶上进行 storage.objects.delete ?

    我正在使用服务帐户将文件上传到具有版本控制的 Google Cloud Storage 存储桶 我想将服务帐户权限保持在最低限度 它只需要上传文件 所以我不想授予它删除文件的权限 但上传失败 仅在流式传输所有内容之后 说它需要删除权限 难道