如何将 GoogleCloudStorage 数据下载到本地或 GoogleCloud

2021-11-30 10:59:28 +08:00
 CaptainD

我的目标是一个公有 GoogleCloudStorage 的数据,利用 gsutil 命令,但是我的请求提示我需要指定我自己的项目:

BadRequestException: 400 Bucket is requester pays bucket but no user project provided.

但是我根本不知道如果指定,目标数据网站的白皮书写了 利用 -u 参数,但是我尝试后报错,而且我也不明白-u 后面应该跟什么,显示没有这个参数,且谷歌的文档根本看不懂,个人认为比阿里云还辣鸡

求教,如何利用 gsuitl 下载,或者有什么其他方式,我已经注册好了并且绑定了支付方式,但是我搞不懂如果使用

1453 次点击
所在节点    问与答
12 条回复
cnit
2021-11-30 11:15:32 +08:00
gsutil cp gs://my-bucket/my-file .

http://storage.googleapis.com/<bucket>/<object>

http://storage.googleapis.com/myBucket/foo.zip
CaptainD
2021-11-30 11:25:41 +08:00
@cnit 我本地的 gsutil 似乎没有和我的 cloud 关联起来,gsutil config 按流程得到了一个 key ,写入本地终端的时候超时了
CaptainD
2021-11-30 11:28:12 +08:00
@CaptainD 这样做返回值是 401 ,应该就是没有关联认为我没有权限的意思
cnit
2021-11-30 11:39:46 +08:00
你需要把文件添加进你的 bucket 吧,就行百度网盘一样保存到自己的网盘,命令行超时可能是没有设置代理,加个代理试试
CaptainD
2021-11-30 11:41:44 +08:00
@cnit 我是开了代理的,否则也没办法访问 GoogleCloud ,我现在就想先测试通过基本命令,下一步把对方公有云的数据下载到本地
cnit
2021-11-30 11:42:58 +08:00
binux
2021-11-30 11:44:18 +08:00
Bucket is requester pays 不是写得很清楚了吗?你需要有一个 billing project ,https://cloud.google.com/storage/docs/using-requester-pays#gsutil_2
CaptainD
2021-11-30 11:48:32 +08:00
@cnit 问题在于,我的命令是可以访问谷歌的 example 共有库,所以我认为问题不出在代理
CaptainD
2021-11-30 11:49:26 +08:00
@binux 我有这个,但是我的本地无法与这个 project 关联,且在拷贝数据的时候也无法使用这个 project ,提示命令错误
binux
2021-11-30 12:04:59 +08:00
@CaptainD 你在那个 project 里面有 role ,并且有 serviceusage.services.use 权限吗?
别告诉我你填的是发布数据的 project 啊
CaptainD
2021-11-30 13:20:24 +08:00
@binux 不不不是我自己的,这个意思我是理解的,我的 project 是非公共的,难不成是这里出了问题,我的理解是我创建的虽然是私有 project ,但是我利用 key 和它关联,它属于我自己,还是可以正常访问的,按说不应该
binux
2021-11-30 14:47:09 +08:00
@CaptainD 完整的报错信息呢?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/818966

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX