Golang AWS开发工具包CreateVirtualMFADevice打印CreateVirtualMFADeviceOutput QRCodePNG

时间:2018-07-25 18:27:04

标签: amazon-web-services go sdk

我正在尝试让用户轻松创建自己的虚拟MFA设备,并且从CreateVirtualMFADevice函数获得结果,但是我迷失了如何自行打印QRCodePNG的方法。当我打印结果时,我只是得到二进制JSON结果。这是我的代码:

                reader := bufio.NewReader(os.Stdin)
                fmt.Println("Enter name of new virtual device: ")
                user, err := reader.ReadString('\n')
                if err != nil {
                        fmt.Printf("Error: %v\n", err)
                }
                input := &iam.CreateVirtualMFADeviceInput{
                        VirtualMFADeviceName: aws.String(strings.TrimSpace(user)),
                        //Path:                 aws.String("./QR_Code.png"),
                }
                result, err := svc.CreateVirtualMFADevice(input)
                if err != nil {
                        if aerr, ok := err.(awserr.Error); ok {
                                switch aerr.Code() {
                                case iam.ErrCodeLimitExceededException:
                                        fmt.Println(iam.ErrCodeLimitExceededException, aerr.Error())
                                case iam.ErrCodeEntityAlreadyExistsException:
                                        fmt.Println(iam.ErrCodeEntityAlreadyExistsException, aerr.Error())
                                case iam.ErrCodeServiceFailureException:
                                        fmt.Println(iam.ErrCodeServiceFailureException, aerr.Error())
default:
                                        fmt.Println(aerr.Error())
                                }
                        } else {
                                // Print the error, cast err to awserr.Error to get the Code and
                                // Message from an error.
                                fmt.Println(err.Error())
                        }
                        return
                }

fmt.Println(result)

以下是对SDK调用的引用: https://docs.aws.amazon.com/sdk-for-go/api/service/iam/#IAM.CreateVirtualMFADevice

这是我从fmt.Println(result)获得的输出

Enter name of new virtual device:
blah
Enter QR code to google authenticator
{
  VirtualMFADevice: {
    Base32StringSeed: <binary> len 64,
    QRCodePNG: <binary> len 1619,
    SerialNumber: "arn:aws:iam::xxxxxxxxxxxxx:mfa/blah"
  }
}

0 个答案:

没有答案