在向 Cobra 控制台应用程序添加第二个子命令后,我收到了错误(no value) used as value。查找错误,它说发生了 TooManyValues。好像我试图返回 2 个值而不是 1 个。这很简单,但我不确定这如何适用于我编写的代码。我不应该将函数添加到与 cobra 控制台代码相同的文件中吗?
错误:
go build -o azGoCLI.exe
# azGoCLI/cmd
cmd\blob.go:40:25: DeleteContainer(args[0], args[1]) used as value
非常感谢提前!
package cmd
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
"github.com/spf13/cobra"
)
func init() {
rootCmd.AddCommand(mainCmd)
mainCmd.AddCommand(createContainer)
mainCmd.AddCommand(deleteContainer)
}
var mainCmd = &cobra.Command{
Use: "blob",
Short: "...",
Run: func(cmd *cobra.Command, args []string) {
cmd.Usage()
},
}
var createContainer = &cobra.Command{
Use: "create-container [storageAccount] [containerName]",
Short: "...",
Args: cobra.MinimumNArgs(2),
RunE: func(cmd *cobra.Command, args []string) error {
return CreateContainer(args[0], args[1])
},
}
var deleteContainer = &cobra.Command{
Use: "delete-container [storageAccount] [containerName]",
Short: "...",
Args: cobra.MinimumNArgs(2),
RunE: func(cmd *cobra.Command, args []string) error {
return DeleteContainer(args[0], args[1])
},
}
func CreateContainer(storageaccount, container string) error {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("Authentication failure: %+v", err)
}
ctx := context.Background()
containerClient, err := azblob.NewContainerClient("https://"+storageaccount+".blob.core.windows.net/"+container, cred, nil)
_, err = containerClient.Create(ctx, nil)
if err != nil {
log.Fatal(err)
}
return nil
}
func DeleteContainer(storageaccount, container string) {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("Authentication failure: %+v", err)
}
尚方宝剑之说
婷婷同学_
相关分类