问题标签 [aws-sdk-go]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
amazon-web-services - 如何克服 ResourceNotFoundException:Go 语言中未找到请求的资源错误?
我是 Go lang 的初学者,我正在尝试使用 AWS 在 Go lang 和 Dynamodb 之间建立连接,并使用 Go lang 编写的 API 在 dynamodb 中插入数据。任何帮助,将不胜感激。
下面是我正在尝试做的代码:
这是我得到的错误:
任何人都可以帮忙吗?
amazon-web-services - 通过 aws-sdk-go 对 URL 进行签名时出现签名不匹配 403 错误
我按照有关此问题的说明https://github.com/aws/aws-sdk-go/issues/467清楚地记录了如何为 PUT 请求创建预签名的 url。目标是预签名网址,所以我可以直接从浏览器安全地上传图片
密钥和秘密当然是我当前通过 SDK 处理直接 PutObject 请求的凭据
```
然后我获取该 URL 并发出 curl 请求。我得到这个回应
任何想法为什么预签名的 URL 为我提供了一个据说不匹配的签名?同样,这些相同的凭据目前也适用于我的服务器上的直接 PutObject 命令
amazon-web-services - 如何使用来自变量的凭证运行 AWS 开发工具包?
我之前使用过环境变量,它工作得很好。
现在我将我的配置变量迁移到一个文件中,并且我有 AWS_SECRET_ACCESS_KEY 和 AWS_ACCESS_KEY_ID 变量,其中包含从该文件加载的相应值。
我尝试了这段代码,但收到一个错误:
这是错误
InvalidClientTokenId:请求中包含的安全令牌无效。
如何正确地将我的密钥注入 aws sdk 调用?
go - 如何将地图正确解包到 golang 中的自定义嵌套结构中(aws sdk-for-go)
我有一个包含两个值(Etag 和 PartNumber)的地图,如下所示:
我最终想用我的值遍历这个映射并将它们转储到一个自定义结构的切片中,如下所示:
我想我的问题是不明白如何正确地做到这一点。我下面的尝试循环始终只添加一个键值对。因此,并非所有值都被解包。
任何帮助这样做的权利将不胜感激。
aws-sdk-go - 当网络很糟糕时,PutRecords 会重新发送数据吗
我通过 PutRecords 将数据发送到 aws kinesis。并且所有数据都发送成功。但是有些记录在消费者端被接收两次。我检查了发送的数据和接收的数据,它们是相同的。我认为当 PutRecords 没有收到来自 kinesis 服务器的响应(由于糟糕的网络站点导致响应丢失)时,它会重新发送数据。但是数据是由 kinesis 服务器接收的。因此,我在消费者方面获得了两次相同的记录。
我的假设正确吗?
go - Kubernetes/CoreOS 上的 Go ONLY 中的无效标头字段值
我有一个使用 aws-sdk-go 与 dynamodb 对话的 Go 程序。依赖项是出售的。转到版本 1.7.1。aws-sdk-go 版本 1.6.24。该程序在以下所有环境中按预期工作:
- 来自 shell 的开发盒(Arch Linux)
- 在我的开发箱上运行的 docker 容器(Docker 1.13.1)
- 来自 shell 的 Ec2 实例(Ubuntu 16.04)
当我在 kubernetes 上运行 docker 容器时(与我在开发盒上测试过的容器相同),我收到以下错误:
基于:
https ://golang.org/src/net/http/transport.go
https://godoc.org/golang.org/x/net/lex/httplex#ValidHeaderFieldValue
看起来问题出在标头值验证上,但我不明白为什么它在除我的 k8s 集群之外的任何地方都有效。集群由运行最新 CoreOS stable ami(CoreOS stable 1235.8.0)的 Ec2 实例组成
在我的开发机器上运行的 docker 镜像是基于暂存的。为了排除故障,我使用一个单独的 go 程序创建了一个基于 Ubuntu latest 的图像,该程序只是从 dynamodb 执行一个简单的 get 项目。当这个图像在我的 k8s 集群上运行并且程序从交互式 shell 运行时,我得到了同样的错误。我已经确认我可以从这个环境 ping dynamodb 端点。
我很难解决这个问题:我在这里错过了什么愚蠢的东西吗?有人可以指出我正确的方向或知道发生了什么吗?
amazon-web-services - aws-sdk-go 中的 Goroutine 泄漏?
我有以下使用当前 aws-sdk-go 版本 v1.7.9 的代码片段。
我在调用 GetBucketLocation() 之前和之后记录调用堆栈。我看到 goroutine 的总数增加了两个,之后运行了这两个额外的 goroutine:
这些例程不会随着时间的推移而消失,它们会随着对 GetBucketLocation() 的更多调用而继续累积。
我是在做错什么(忽略关闭某些资源)还是在 aws-sdk-go 中发生了 goroutine 泄漏?
请注意,使用该s3manager.Downloader::Download()
函数会观察到相同的行为。
aws-sdk-go - 为什么 NewStaticCredentials 返回一个空白的 Credentials 对象?
我正在尝试从账户 B 读取账户 A 中的 S3 对象。
我能够在账户 B 中担任角色并检索sts.Credentials
对象。
然后我必须将sts.Credentials
对象转换为credentials.Credentials
对象才能使用它
但是,当我这样做时:
creds
由于某种原因是一个指向空credentials.Credentials
对象的指针:
我也试过:
所以,我不太清楚为什么credentials.NewStaticCredentials()
返回一个空的凭证对象。
go - 如何在 S3 中保存数据流?aws-sdk-go 示例不起作用?
我正在尝试将给定的数据流保存到与 S3 兼容的存储中。在流结束之前大小是未知的,可以从 5MB 到 ~500GB 不等。
我尝试了不同的可能性,但没有找到比自己实现分片更好的解决方案。我最好的猜测是用我的流填充一个固定大小的缓冲区并将其写入 S3。有更好的解决方案吗?也许这是一种对我来说透明的方式,而不会将整个流写入内存?
aws-sdk-go 自述文件有一个示例程序,它从标准输入获取数据并将其写入 S3:https ://github.com/aws/aws-sdk-go#using-the-go-sdk
当我尝试使用管道传输数据时,出现|
以下错误:
failed to upload object, SerializationError: failed to compute request body size
caused by: seek /dev/stdin: illegal seek
我做错了什么还是示例没有按我预期的那样工作?
我虽然尝试了 minio-go,使用PutObject()或client.PutObjectStreaming()。这是功能性的,但消耗的内存与要存储的数据一样多。
- 有更好的解决方案吗?
- 是否有一个可以将任意数据传输到 S3 的小示例程序?
amazon-web-services - 向多个设备发送 SNS 推送通知消息
aws-sdk-go
我需要向使用lib传递设备令牌数组的多个设备发送 SNS 推送通知。
目前我正在使用以下步骤将推送消息发送到 SNS:
创建端点:
将消息发送到端点:
我还没有看到一种仅使用一个请求将一条推送消息发送到多个设备的方法。可能吗?
像这个例子来说明: