官方AWS Go SDK中似乎没有一个函数可以解析s3://
样式的类似URI的字符串(即s3://mybucket/some/place/on/there.gz
)并提供诸如存储桶和密钥之类的东西。 Java SDK has such a function。我错过了Go SDK没有的明显原因吗?
这个问题是关于保持兼容性。 SDK函数提供了关于如何正确解析S3地址的明确权限,并且可以避免担心url.Parse()
和之后可能遗漏的微妙案例。
答案 0 :(得分:4)
虽然只有AWS开发人员可以回答实际问题(为什么不包含在SDK中),但有一个简单的答案:S3 URL是URL,您可以使用net/url
来解析它们:< / p>
u,_ := url.Parse("s3://mybucket/some/place/on/there.gz")
fmt.Printf("proto: %q, bucket: %q, key: %q", u.Scheme, u.Host, u.Path)