google-cloud-platform - 在谷歌云平台上传输文件.error
问题描述
当我使用 GCP 存储传输功能时,我不断收到以下错误。错误
我正在使用的 URL 和我的 tsv 位于此处:
https://drive.google.com/file/d/1ZDkQgCIrzGU-emfHiHYwsvj9i108iJVO/view?usp=sharing
我尝试将 tsv 直接放在云存储上,但收到了同样的错误。然后我使用 gs// 地址而不是 URL 并得到以下错误:
所以它似乎已经从查看错误消息中获取了 URL,但是这个过程被拒绝是什么意思?拒绝阅读我的文件或下载下载。看起来它正在将链接作为网页而不是 txt 文件读取。hmmm
解决方案
我认为您对接收器存储桶链接的权限有问题。
Storage Transfer Service 使用服务帐号将数据移动到 Cloud Storage 接收器存储桶中。服务帐号必须对 sink bucket 有一定的权限:
权限 说明 使用
storage.buckets.get 允许服务帐户获取存储桶的位置。始终需要。
storage.objects.create 允许服务帐户将对象添加到存储桶。始终需要。
storage.objects.delete 允许服务帐户删除存储桶中的对象。如果将 overwriteObjectsAlreadyExistingInSink 或 deleteObjectsUniqueInSink 设置为 true,则为必需。
storage.objects.list 允许服务帐户列出存储桶中的对象。如果将 overwriteObjectsAlreadyExistingInSink 设置为 false 或 deleteObjectsUniqueInSink 设置为 true,则为必需。
所有这些权限都包含在角色/storage.legacyBucketWriter 角色中,您可以将其分配给服务帐户。有关 Cloud Storage 角色及其包含的权限的完整列表,请参阅 IAM 角色。
推荐阅读
- java - 我的列表视图上的删除按钮无法正常工作
- swift - 如何使用泛型在 Swift 中实现 REST APIManager
- windows - 如何设置 Windows shell 环境变量?术语“C:\Users\stojko\”未被识别为 cmdlet 的名称
- python - 嵌套的 for 循环被忽略
- python - 如何用天替换熊猫情节 xticks?
- spring-boot - 如何为 GCP App Engine Flex 调整流量非常低的 Spring Boot 应用程序的大小
- plotly - 如何在 WordPress 中发布公共 Dash 应用程序?
- android - 在 RecyclerView 中使用视频适配器从包目录中删除文件不起作用
- laravel - Laravel Sanctum 为每个中间件请求返回 401 状态
- visual-studio-code - 在 VSCode 中的 WSL2 上钓鱼添加随机字母