问题标签 [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.

0 投票
4 回答
9377 浏览

go - 将对象上传到 AWS S3 而不使用 aws-sdk-go 创建文件

我正在尝试使用 golang sdk 将对象上传到 AWS S3,而无需在我的系统中创建文件(尝试仅上传字符串)。但我很难做到这一点。谁能给我一个示例,说明如何在不需要创建文件的情况下上传到 AWS S3?

AWS 如何上传文件的示例:

我已经尝试以编程方式创建文件,但它正在我的系统上创建文件,然后将其上传到 S3。

0 投票
2 回答
1906 浏览

amazon-web-services - 使用 s3 上传多个文件

我想通过 aws golang sdk 将文件上传到我的 s3 存储桶。我有一个监听 POST 请求的网络服务器,我希望能收到多个任何类型的文件。

使用 sdk,s3 结构PutObjectInput预计Body是类型io.ReadSeeker,我不确定如何从上传的文件中提取内容,进而满足io.ReadSeeker接口。

0 投票
1 回答
39 浏览

aws-sdk-go - 寻找跨区域获取 s3 信息(例如策略)的优化方式

我需要获取所有区域的所有 S3 存储桶的属性,是否有一个 SDK api 可以实现这一点?当我最终创建每个区域会话并使用这些新会话调用 s3 api 时。

  • 使用 ListBuckets,获取桶列表
  • GetBucketLocation 将给出位置/区域
  • 每个区域创建会话
  • 然后使用每个区域的这些新会话进行 s3 查询。
0 投票
1 回答
1831 浏览

amazon-web-services - Go AWS SDK“无法确定要授权的服务/操作名称”

我正在使用 Go SDK 连接到 Kinesis Video Streams 服务。发出GetMedia请求时,我收到带有以下正文的 403 响应:

我正在使用 LogLevelLogDebugWithHTTPBody来查看这一点,因为 SDK 需要 JSON 并接收 XML,从而导致SerializationError.

我正在使用 Go 1.9.2,并尝试使用 aws-sdk-go 的 v1 和 v2 进行此操作,结果相同。

这是我的要求:

回复:

任何帮助将不胜感激。

为了跟进,我尝试直接发出上面的 HTTP 请求并Content-Type: application/json添加了标头,现在的响应是:

0 投票
1 回答
1275 浏览

amazon-web-services - How to get public IP address of a newly launched AWS instance?

When launching new instance in AWS, the public IP address and DNS name is not returned as part of the response.

The machine created has public IP and DNS name assigned, as I can see in the web console, but the response to the SDK method call does not have the IP and DNS field values assigned.

I'm using following code:

I believe the assignment of the public ip address is somehow delayed, even if I can't notice that using the web console.

How do I obtain the public IP address and DNS name after creating the instance? Is polling DescribeInstances the right method to do it?

0 投票
1 回答
287 浏览

aws-sdk-go - AWS MediaLive - UnprocessableEntityException:无法读取未定义的属性“目的地”

我想使用 Go AWS SDK 在 AWS MediaLive 上创建一个频道(尝试使用 v1 和 v2)。

但我收到以下错误:

UnprocessableEntityException:无法读取未定义状态代码的属性“目标”:422,请求 ID:5429aaff-fab9-11e7-843e-ed86ee7cfb22

CreateChannel命令如下所示(适用于 SDK v1):

显然,代码包含许多变量,这些变量已经在之前初始化/创建,因为CreateChannel操作需要输入、输入安全组等。

在我的代码中没有任何地方有属性destinationDestinations下只有字段CreateChannelInput

如果有人可以提供有关此错误的提示,我们将不胜感激。

0 投票
2 回答
3635 浏览

amazon-s3 - 当键有前导斜杠时如何使用GetObject

我需要使用GetObjectGo AWS SDK 中的一系列函数从 S3 存储桶中获取对象,其中对象的键可能以一个或多个斜杠开头。但是,SDK 似乎删除了那些前导斜杠,从而更改了密钥。

我创建了存储桶并将一些数据放入如下:

以下代码显示ListObjects正确返回带有前导斜杠的密钥,但是当运行日志显示GET请求在没有前导斜杠的情况下完成。

启用调试日志记录的调用GetObject表明 SDK 执行以下请求:

这缺少前导斜杠并返回 404 错误。

我应该如何使用 Go SDK 获取此类对象?我无法控制对象的键。

我已经尝试在将密钥传递给之前对密钥进行 URL 转义,GetObject但是百分号被转义并且密钥发生了变化。

我使用 Go 1.9 linux/amd64 和 SDK 1.12.62。

0 投票
1 回答
257 浏览

amazon-web-services - storagegateway.ListGateways() 返回“无效资源”,状态码:400

我在使用 go sdk 使用以下代码列出区域中的所有存储网关时遇到问题:

我的环境如下:

  • Go 版本: 1.9.2 darwin/amd64
  • 操作系统: macOS 10.13.2
  • aws-sdk-go: v1.12.63

SDK 正在使用中指定的默认配置文件,~/.aws/config并且凭据也是正确的。此外,我可以单独使用 awscli 列出网关。

这很可能是我忽略的一些简单的事情,因为我不是专家。也就是说,任何帮助将不胜感激。

0 投票
2 回答
276 浏览

aws-sdk-go - AWS 策略的类型定义

在哪里可以找到 AWS 策略的类型(结构)定义?例如,对于这样的政策

我目前正在执行以下操作来访问里面的字段:

#

我想要一个像这样的结构

并且在解组时,能够像 Policy.Version 一样访问。

0 投票
1 回答
4088 浏览

go - 具有强制内容 md5 的 AWS S3 预签名 URL

我正在尝试将 S3 的预签名 URL 与强制 Content-MD5 一起使用。因此,我基本上是在尝试以他们的Docs为例。显然我做错了什么。

这是我尝试上传的文件的校验和:

这是代码:

应该给我一个现成的 curl 命令,例如:curl -XPUT -H "Content-MD5: Y2UwYTRhODNjODhjMmU3NTYyOTY4ZjAzMDc2YWU2MmY=" https://bucket.s3.eu-central-1.amazonaws.com/testfile.txt<super-long-url> --upload-file testfile.txt

不幸的是,请求总是失败并显示以下消息:

由于我有点不确定是否应该使用 MD5 的 base64 请求,所以我也尝试使用普通的 MD5 以及哪个响应

只要我删除标头设置resp.HTTPRequest.Header.Set("Content-MD5", md5s)并使用curl -XPUT https://bucket.s3.eu-central-1.amazonaws.com/testfile.txt<super-long-url> --upload-file testfile.txt.

我究竟做错了什么?