in oss/api_op_select_object.go [110:156]
func marshalMetaRequest(request any, input *OperationInput) error {
var builder strings.Builder
var process string
switch r := request.(*CreateSelectObjectMetaRequest).MetaRequest.(type) {
case *JsonMetaRequest:
process = "json/meta"
builder.WriteString("<JsonMetaRequest>")
if r.InputSerialization != nil {
bs, err := xml.Marshal(r.InputSerialization)
if err != nil {
return err
}
builder.WriteString(string(bs))
}
if r.OverwriteIfExists != nil {
builder.WriteString("<OverwriteIfExists>")
builder.WriteString(strconv.FormatBool(*r.OverwriteIfExists))
builder.WriteString("</OverwriteIfExists>")
}
builder.WriteString("</JsonMetaRequest>")
case *CsvMetaRequest:
r.encodeBase64()
process = "csv/meta"
builder.WriteString("<CsvMetaRequest>")
if r.InputSerialization != nil {
bs, err := xml.Marshal(r.InputSerialization)
if err != nil {
return err
}
builder.WriteString(string(bs))
}
if r.OverwriteIfExists != nil {
builder.WriteString("<OverwriteIfExists>")
builder.WriteString(strconv.FormatBool(*r.OverwriteIfExists))
builder.WriteString("</OverwriteIfExists>")
}
builder.WriteString("</CsvMetaRequest>")
default:
return NewErrParamInvalid("MetaRequest")
}
input.Body = strings.NewReader(builder.String())
if input.Parameters == nil {
input.Parameters = map[string]string{}
}
input.Parameters["x-oss-process"] = process
return nil
}