我正在尝试更改 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"`
}
在设置存储桶策略时,一切都很顺利。问题出现在我尝试获取当前策略并修改它时。
如果有一个语句只有一个AWS、Action或Resource值,Amazon会将其从数组转换为简单值,导致我的取消编组失败。
有没有办法可以指定AWS/Action/Resource值为字符串切片或仅为字符串?
我知道有可用的包可以在某种程度上解决这个问题(例如github.com/Jeffail/gabs
),但直接创建JSON结构会更清晰,因为它非常简单。