我正在尝试更改 aws 上 s3 存储桶的策略。我为策略创建了以下 json 结构:
type Policy struct {
Version string `json:"Version"`
Id string `json:"Id"`
Statement []Statement `json:"Statement"`
}
type Statement struct {
Sid string `json:"Sid"`
Effect string `json:"Effect"`
Principal Principal `json:"Principal"`
Action []string `json:"Action"`
Resource []string `json:"Resource"`
}
type Principal struct {
AWS[]string `json:"AWS"`
}
Run Code Online (Sandbox Code Playgroud)
这适用于将存储桶策略落实到位。当我尝试获取当前策略并对其进行修改时,问题就出现了。
如果有一条语句只有一个 AWS、Action 或 Resource 值,Amazon 会将其从数组转换为简单值,从而导致我的解组失败。
有什么方法可以将 AWS/Action/Resource 值指定为字符串切片或只是字符串?
我知道有一些可用的包可以在某种程度上解决这个问题(github.com/Jeffail/gabs例如),但是创建 JSON 结构会更清晰,因为它相当简单。