在GCS Transfer中指定S3兼容端点的相关疑问
GC存储传输到Digital Ocean Spaces的Endpoint配置问题
目标Endpoint到底是什么?
Digital Ocean的S3兼容存储服务叫Spaces,它的Endpoint是按区域划分的,比如纽约1区是nyc3.digitaloceanspaces.com,旧金山3区是sfo3.digitaloceanspaces.com,每个区域对应唯一的接入地址,代理必须通过它才能和你的目标存储桶建立连接。
为啥不能直接像KEY/SECRET那样指定?
Google Cloud存储传输服务默认会通过目标桶名自动推导Endpoint——因为DO Spaces的命名规则是[桶名].[区域Endpoint],服务会解析桶名里的后缀来匹配对应区域的Endpoint。但如果你的桶名没按这个规则命名,或者需要强制指定特定Endpoint,就得用额外配置项。
你大概率漏了这个配置步骤:
不管用命令行还是网页控制台,都能指定自定义Endpoint,只是文档没放在显眼位置:
- 命令行方式:创建传输作业时添加
--s3-compatible-api-endpoint参数,示例:gcloud transfer jobs create gs://你的GC存储桶 s3://你的DO存储桶 \ --s3-compatible-access-key=你的DO_ACCESS_KEY \ --s3-compatible-secret-key=你的DO_SECRET_KEY \ --s3-compatible-api-endpoint=https://nyc3.digitaloceanspaces.com - 控制台方式:选择目标为“S3兼容存储”后,找到并展开「高级选项」,里面有“API端点”输入框,直接填入对应区域的DO Endpoint即可。
另外,传输作业计算大小耗时过久,可能和GC存储桶内文件数量多、代理与DO Endpoint之间的网络延迟有关,建议先检查代理能否正常访问目标Endpoint,排除网络连通性问题。
内容的提问来源于stack exchange,提问作者Nigini
相关产品推荐
相关产品推荐

