小编Mad*_*ala的帖子

如何升级kubectl客户端版本

我想将kubectl客户端版本升级到1.11.3.

我执行brew install kubernetes-cli但版本似乎没有更新.

Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.7", GitCommit:"0c38c362511b20a098d7cd855f1314dad92c2780", GitTreeState:"clean", BuildDate:"2018-08-20T10:09:03Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.4", GitCommit:"bf9a868e8ea3d3a8fa53cbb22f566771b3f8068b", GitTreeState:"clean", BuildDate:"2018-10-25T19:06:30Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}
Run Code Online (Sandbox Code Playgroud)

我正在尝试通过运行此命令获取单元格的日志.

kubectl logs -l groupname/cell=my-cell --all-containers=true
Run Code Online (Sandbox Code Playgroud)

这适用于我的VM,其客户端版本为1.11.3.但是在我的mac中它给了我一个错误,说--all-containers=trueflag不能用于kubectl logs命令.

macos homebrew kubernetes kubectl

14
推荐指数
5
解决办法
2万
查看次数

如何使用 golang 从 AWS S3 下载

我正在编写一个 go 函数来从 AWS S3 存储桶下载文件。

func DownloadFromS3Bucket() {
    bucket := "cellery-runtime-installation"
    item := "hello-world.txt"

    file, err := os.Create(item)
    if err != nil {
        fmt.Println(err)
    }

    defer file.Close()

    // Initialize a session in us-west-2 that the SDK will use to load
    // credentials from the shared credentials file ~/.aws/credentials.
    sess, _ := session.NewSession(&aws.Config{
        Region: aws.String("us-east-1")},
    )

    downloader := s3manager.NewDownloader(sess)

    numBytes, err := downloader.Download(file,
        &s3.GetObjectInput{
            Bucket: aws.String(bucket),
            Key:    aws.String(item),
        })
    if err != nil {
        fmt.Println(err)
    }

    fmt.Println("Downloaded", file.Name(), numBytes, "bytes") …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 go amazon-web-services awss3transfermanager aws-sdk

8
推荐指数
2
解决办法
9988
查看次数

如何在 Go 中实现 CLI 命令的单元测试

我正在启动一个使用 spf13/cobra 的新 OSS CLI 工具。作为 golang 的新手,我很难找出孤立测试命令的最佳方法。谁能给我一个如何测试命令的例子?几个警告:

  1. 你不能从你的 init 函数返回一个 cobra.Command
  2. 你不能get_test.go在 cmd 目录中......我的印象是 golang 最佳实践。
  3. 我是 golang 的新手,请放轻松 :sweat_smile:

如果我错了,请纠正我。

这是我要测试的 cmd:https : //github.com/sahellebusch/raider/blob/3-add-get-alerts/cmd/get.go

对想法、建议、批评持开放态度,无论什么。

unit-testing go go-cobra

6
推荐指数
1
解决办法
2215
查看次数

GoogleAPI oauth2 刷新令牌在 1 小时后过期

我在我的应用程序中使用 Google API,并且 oauth2 刷新令牌在 1 小时后过期。我正在使用此刷新令牌来执行每天运行的任务。我使用 OAuth2 playground 创建了刷新令牌。有没有办法延长刷新令牌的到期时间?(1个月)

oauth google-api oauth2-playground google-oauth

5
推荐指数
2
解决办法
2301
查看次数

如何使用golang检查s3对象大小

我已经实现了一个从 AWS S3 存储桶下载对象的函数。这工作正常。但我需要显示一个下载进度条。为此,我需要根据此处事先知道对象的大小 。有谁知道如何获得对象大小?

这是我的代码。

func DownloadFromS3Bucket(bucket, item, path string) {
    file, err := os.Create(filepath.Join(path, item))
    if err != nil {
        fmt.Printf("Error in downloading from file: %v \n", err)
        os.Exit(1)
    }

    defer file.Close()

    sess, _ := session.NewSession(&aws.Config{
        Region: aws.String(constants.AWS_REGION), Credentials: credentials.AnonymousCredentials},
    )

    // Create a downloader with the session and custom options
    downloader := s3manager.NewDownloader(sess, func(d *s3manager.Downloader) {
        d.PartSize = 64 * 1024 * 1024 // 64MB per part
        d.Concurrency = 6
    })

    numBytes, err := downloader.Download(file, …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 go amazon-web-services aws-sdk

4
推荐指数
2
解决办法
2949
查看次数

如何从exec命令获取错误消息

我正在使用Go来创建CLI.我正在执行一个命令,如果从操作系统中抛出错误,我想打印它.

cmd := exec.Command("abc", "run", pathToFile)
err := cmd.Start()
if err != nil {
    fmt.Printf("Error : %v \n", err)
    os.Exit(1)
}
err = cmd.Wait()
if err != nil {
    fmt.Printf("Error: %v \n", err)
    os.Exit(1)
}
Run Code Online (Sandbox Code Playgroud)

这只给我退出状态代码

Error:  exit status 1 
Run Code Online (Sandbox Code Playgroud)

这不够描述.

当我直接在终端中运行命令时,我会清楚地收到错误消息.

source does not exist 'test.exe'
Run Code Online (Sandbox Code Playgroud)

有没有办法打印邮件?

operating-system cmd exec go

3
推荐指数
1
解决办法
379
查看次数

使用 golang 进行 AWS S3 并行下载

我正在编写一个函数来使用 aws-sdk for go 从 AWS S3 存储桶下载一个大文件 (9GB)。我需要优化它并快速下载文件。

func DownloadFromS3Bucket(bucket, item, path string) {
    os.Setenv("AWS_ACCESS_KEY_ID", constants.AWS_ACCESS_KEY_ID)
    os.Setenv("AWS_SECRET_ACCESS_KEY", constants.AWS_SECRET_ACCESS_KEY)

    file, err := os.Create(filepath.Join(path, item))
    if err != nil {
        fmt.Printf("Error in downloading from file: %v \n", err)
        os.Exit(1)
    }

    defer file.Close()

    sess, _ := session.NewSession(&aws.Config{
        Region: aws.String(constants.AWS_REGION)},
    )

    downloader := s3manager.NewDownloader(sess)

    numBytes, err := downloader.Download(file,
        &s3.GetObjectInput{
            Bucket: aws.String(bucket),
            Key:    aws.String(item),
        })
    if err != nil {
        fmt.Printf("Error in downloading from file: %v \n", err)
        os.Exit(1)
    }

    fmt.Println("Download completed", file.Name(), numBytes, …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 go amazon-web-services aws-sdk

3
推荐指数
1
解决办法
1839
查看次数

如何使用Golang询问“是”或“否”

promptUi用来创建选择列表。现在,我想在选择后提示“是”或“否”问题:

bold := color.New(color.Bold).SprintFunc()
cellTemplate := &promptui.SelectTemplates{
    Label:    "{{ . }}",
    Active:   "\U000027A4 {{ .| bold }}",
    Inactive: "  {{ . | faint }}",
    Help:     util.Faint("[Use arrow keys]"),
}

cellPrompt := promptui.Select{
    Label:     util.YellowBold("?") + " Select an environment to be installed",
    Items:     getCreateEnvironmentList(),
    Templates: cellTemplate,
}
_, value, err := cellPrompt.Run()
if err != nil {
    return fmt.Errorf("Failed to select: %v", err)
}

switch value {
case constants.CELLERY_CREATE_LOCAL:
    {
        // Prompt yes or no
    }
case constants.CELLERY_CREATE_GCP: …
Run Code Online (Sandbox Code Playgroud)

prompt go

2
推荐指数
1
解决办法
478
查看次数