我对 GO 还很陌生,我希望有人能够为我指明正确的方向。我正在尝试将打印存储到变量中。为了提供一些背景信息,目前,我正在检索 Amazon S3 中的文件的 URL,并且我希望将该 URL 存储为变量,以便我可以将其以电子邮件或推送通知的形式发送出去。
这是我现在所拥有的:
func main() {
bucket := "bucket"
region := "eu-west-2"
// Initialize a session in us-west-2 that the SDK will use to load
// credentials from the shared credentials file ~/.aws/credentials.
sess, err := session.NewSession(&aws.Config{
Region: aws.String("eu-west-2")},
)
// Create S3 service client
svc := s3.New(sess)
// Get the list of item
resp, err := svc.ListObjects(&s3.ListObjectsInput{Bucket: aws.String(bucket)})
if err != nil {
exitErrorf("Unable to list items in bucket %q, %v", bucket, err)
}
for _, item := range resp.Contents {
fmt.Printf("https://s3.%s.amazonaws.com/%s/%s", region, bucket, *item.Key)
fmt.Println("")
var url string = "https://s3.%s.amazonaws.com/%s/%s", region, bucket, *item.Key
}
}
func exitErrorf(msg string, args ...interface{}) {
fmt.Fprintf(os.Stderr, msg+"\n", args...)
os.Exit(1)
}
Run Code Online (Sandbox Code Playgroud)
这会在extra expression in var declaration尝试编译时导致(TBF我没想到它会起作用)。有人知道这样做的替代方法吗?
谢谢!
要存储串联结果,可以使用fmt.Sprintf
variable := fmt.Sprintf("https://s3.%s.amazonaws.com/%s/%s", region, bucket, *item.Key)
Run Code Online (Sandbox Code Playgroud)