问题标签 [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 - AWS presigned url acl public 读取无效签名
我有一个私有存储桶,我想创建一个预签名的 url,允许用户在时间限制内上传文件并将 ACL 设置为公共只读。
当创建像下面这样的 PutObjectRequest 时,它工作正常,我可以 PUT 文件没有问题。当我添加 ACL: aws.String("public-read") 时,我收到错误“签名不匹配”并且 PUT 失败,这是 GO sdk 生成的 url 示例。
我尝试过使用 root aws 用户和普通用户。我尝试过使用存储桶策略和不使用存储桶策略,以及使用存储桶策略和 IAM 策略的 FULL S3 访问和不使用。基本上所有的组合。每当我添加 ACL 字段时,都会出现签名错误。
我不确定它是否与 GO SDK 或 AWS 服务有关。有人可以建议我该怎么做吗?
amazon-web-services - 有没有一种方法可以使用类似于 google storage Write() 方法的 aws-sdk-go 将数据流式传输到 amazon s3 文件?
我们目前正在从 Google 存储过渡到 Amazon S3 存储。
在 Google Storage 上,我使用此功能https://godoc.org/cloud.google.com/go/storage#Writer.Write写入文件。它基本上使用 io.Writer 接口将数据字节流式传输到文件中,并在编写器上调用 Close() 时保存文件。这使我们可以整天将数据流式传输到文件中,并在一天结束时完成它,而无需创建文件的本地副本。
我检查了 godoc 上的 aws-sdk-go s3 文档,似乎找不到一个类似的函数,它允许我们将数据流式传输到文件而无需先在本地创建文件。我发现的只是从已经存在的本地文件(如 PutObject())流式传输数据的函数。
所以我的问题是:有没有一种方法可以使用类似于谷歌存储 Write() 方法的 aws-sdk-go 将数据流式传输到亚马逊 s3 文件?
go - 用于 s3 的 golang aws sdk 是否受到限制?
我正在使用 go aws sdk 将对象放入 s3。上传文件大约需要 1 秒。为了测试并发性,我使用了一个 http 服务器,ab -c10 -n10 http://localhost:8080
处理程序调用了以下代码:
我正在使用回显服务器来接收请求,如果我在处理程序中只睡 1 秒,那么并行执行所有 10 个请求的时间仅为 1 秒。但是,当上传太多 s3 时,执行 10 个并发请求的时间似乎是串行加起来的,接近 8 秒。go sdk 是否没有同时执行 s3 上传?
go - 我可以使用 s3manager 重命名 s3 上的大文件或小文件吗?
当 data 是时,此代码效果很好io.Reader
:
s3manager.UploadInput{
Bucket: aws.String("MyBucket"),
Key: aws.String("file1.mov"),
Body: data,
}
s3 管理器:
https://github.com/aws/aws-sdk-go/tree/master/service/s3/s3manager
知道如何通过分段上传上传 4MB 文件或 14GB 文件。即 4MB 不能使用多部分,因为它太小了。
所以 s3manager 非常适合这个。我不必担心大小。
但是我可以使用 s3manager 来重命名 s3 上已经存在的文件吗?重命名将在幕后进行新的 Multipart 上传,因为 14GB 的文件太大而无法在没有 Multipart 的情况下复制。
(s3没有重命名功能,重命名是复制然后删除)
go - 同时从 S3 下载多个文件并合并它们
我试图同时从 S3 下载多个文件,并将它们的内容合并到一个字节缓冲区中。这些文件是 csv 格式的。我的代码似乎大部分时间都在工作(10 次尝试中的 8 次)。但在某些情况下,在我检查了合并缓冲区后,我得到的比我应该得到的要少(通常不超过 100 行丢失)。预期的记录总数为 4802。如果按顺序运行我的代码,则不会出现此问题。但我需要使用 goroutines 来提高速度。这是我尝试做的主要要求。我已经运行了 go data race 检查器没有出现数据竞争,并且我打印的错误语句永远不会打印出来。
这是我使用的代码:
和下载功能(也整合下载的文件)
amazon-s3 - AWS:PutBucketLifecycleConfigurationRequest 返回 NotImplemented
我是使用 AWS 尤其是 s3 的新手。我正在使用 aws go sdk。我正在尝试在下面的方法中设置存储桶生命周期规则;
并在测试中调用上述方法:
我不断收到错误消息NotImplemented
。为什么会发生这种情况?我最初没有添加我在阅读putbucketlifecycle文档后添加的 content-md5 标头。但是,我仍然收到错误消息。
aws-sdk - 在服务器端验证 Cognito 访问令牌
我有一个使用AdminInitiateAuth
(AWS SDK for Go)的 Cognito 访问令牌服务器端,我将它存储在会话 cookie 中。我假设我需要在每个后续请求中验证该令牌。我是否需要为每个请求调用 Cognito,还是可以在我的应用服务器端验证令牌?
amazon-web-services - 获取 s3 存储桶上的资源 URI
目前,我使用字符串插值手动构造 URI:
恕我直言,这是不好的,因为我通过环境变量中的参数传递它们。我可以访问使用我们的 s3 存储桶正确初始化的 aws.Session 对象。
是否有一种语义正确的方法(可能使用 aws sdk API)来生成与虚拟字符串生成器相同的资源 URI?
aws-sdk-go - DescribeInstances 返回空结果
我正在使用 DescribeInstances api 获取我所有的 EC2 实例。但我无法获得有关我的实例的任何信息。我只能将空结果视为成功。我在步骤中提供我的代码以重现部分。
输出我可以看到如下:
Success { }
我也在导出 AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY 和 AWS_REGION
下面是代码片段