func()

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
}