将S3 URI解析为存储桶并将密钥解析为Go

时间:2017-06-28 18:22:51

标签: go amazon-s3 aws-sdk

官方AWS Go SDK中似乎没有一个函数可以解析s3://样式的类似URI的字符串(即s3://mybucket/some/place/on/there.gz)并提供诸如存储桶和密钥之类的东西。 Java SDK has such a function。我错过了Go SDK没有的明显原因吗?

这个问题是关于保持兼容性。 SDK函数提供了关于如何正确解析S3地址的明确权限,并且可以避免担心url.Parse()和之后可能遗漏的微妙案例。

1 个答案:

答案 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)

Playground here