in oss/lib/bucket_cname.go [278:330]
func (bwc *BucketCnameCommand) RunCommand() error {
strMethod, _ := GetString(OptionMethod, bwc.command.options)
if strMethod == "" {
return fmt.Errorf("--method value is empty")
}
strItem, _ := GetString(OptionItem, bwc.command.options)
strMethod = strings.ToLower(strMethod)
srcBucketUrL, err := GetCloudUrl(bwc.command.args[0], "")
if err != nil {
return err
}
bwc.bwOption.bucketName = srcBucketUrL.bucket
bwc.bwOption.client, err = bwc.command.ossClient(bwc.bwOption.bucketName)
if err != nil {
return err
}
err = nil
switch strItem {
case "":
switch strMethod {
case "get":
err = bwc.GetBucketCname()
case "put":
err = bwc.PutBucketCname()
case "delete":
err = bwc.DeleteBucketCname()
default:
err = fmt.Errorf("--method only support get,put,delete")
}
case "token":
switch strMethod {
case "get":
err = bwc.GetBucketCnameToken()
case "put":
err = bwc.PutBucketCnameToken()
default:
err = fmt.Errorf("only support get bucket token or put bucket token")
}
case "certificate":
switch strMethod {
case "put":
err = bwc.PutBucketCnameWithCertificate()
default:
err = fmt.Errorf("only support put bucket with certificate")
}
default:
err = fmt.Errorf("--item only support token or certificate")
}
return err
}