in cft/pkg/rain.go [75:112]
func handleS3(root string, options s3Options) (*yaml.Node, error) {
s, err := upload(root, options.Path, options.Zip)
if err != nil {
return nil, err
}
if options.Format == "" {
if options.BucketProperty != "" && options.KeyProperty != "" {
options.Format = s3Object
} else {
options.Format = s3URI
}
}
var n yaml.Node
switch options.Format {
case s3Object:
if options.BucketProperty == "" || options.KeyProperty == "" {
return nil, errors.New("Missing BucketProperty or KeyProperty")
}
out := map[string]string{
options.BucketProperty: s.bucket,
options.KeyProperty: s.key,
}
n.Encode(out)
case s3URI:
n.Encode(s.URI())
case s3Http:
n.Encode(s.HTTP())
default:
return nil, fmt.Errorf("Unexpected S3 output format: %s", options.Format)
}
return &n, nil
}