我正在尝试让用户轻松创建自己的虚拟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"
}
}