问题标签 [aws-sdk-ruby]

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 投票
1 回答
196 浏览

ruby - AWS 市场授权服务 api 没有响应

在尝试获取 AWS 上交付的产品的权利信息时:

我得到:

凭据中的用户具有:

AWSMarketplace 完全访问权限

AWSMarketplaceGetEntitlements

这与将 us-east-1 作为区域相同的错误。您对如何解决这个问题有任何想法吗?

0 投票
1 回答
2560 浏览

aws-sdk - Localstack:awscli 工作,aws-sdk 引发错误

我想将localstack与 ruby​​ 一起使用aws-sdk。似乎 aws sdk 错过了一些配置或有错误,它会引发错误:

之后

它提出了一个:

在同一个容器上,如果我awscli完全没有问题:

我创建了一个 docker-compose.yml 来帮助解决这个问题:

https://github.com/ook/localstack-s3-problem

我在自述文件中注意到我现在尝试了什么。

请指教 :)

0 投票
0 回答
1565 浏览

ruby - 带有 get_object 的预签名 URL 的 SignatureDoesNotMatch

很简单的东西(我想)。我正在尝试创建一个预签名的 url,然后我可以用它来下载文件。这些密钥对应的 IAM 用户拥有 fullS3Acess,直到我弄清楚为什么这个签名不起作用。

当我尝试在浏览器中打开从 presigned_url 方法返回的 url 时,会导致 SignatureDoesNotMatch 错误。关于为什么这是真的有什么想法吗?我想我已经排除了权限作为答案,因为我已经将该用户的 IAM 权限增加到了应有的位置。有任何想法吗?

0 投票
0 回答
723 浏览

ruby - AWS S3 Ruby 流下载:在块下载期间重试连接

我想知道是否有人可以帮助我解决我遇到的流式下载问题?

目前,我有一个存储在 s3 存储桶中的大型 GZipped XML 文件,我需要每天使用 ruby​​ 下载、解压缩和解析该文件。由于文件的大小,我选择以块的形式下载大文件并对每个块执行必要的解析,如下所示:

返回 Enumerator 对象允许我稍后在脚本中处理块的每个部分(即解压缩并解析其中包含的 XML)

这一切都需要按计划运行,所以我有一个独立的 Heroku dyno 为我运行 ruby​​ 脚本(我的 Rails 站点也部署到 Heroku)。它在本地运行良好,但在 Heroku 上运行大约一个小时后(有时取决于测功机的大小),脚本失败并显示以下错误消息:

我的问题是,当这在我的流中间失败时,我不确定如何从连接重置的块开始重试下载。

Fog 的流下载文档很少,切换到适用于 Ruby 的 AWS 开发工具包似乎为块提供的信息更少(即没有剩余或总字节参数)。

有任何想法吗?提前致谢!

更新 1

total_bytes - remaining_bytes我最近的尝试涉及在连接重置之前跟踪最后一个块的字节位置(即)。Fog 允许您在get方法的 options 参数中设置自定义标头:

因此,当流被重置时,我会尝试使用 HTTP Range 标头从我在新流中中断的地方开始。

但是,Fog 似乎忽略了这个标头,经过一番挖掘,我发现它不是fog-awsgem 中接受的 HTTP 标头属性:

https://github.com/fog/fog-aws/blob/ab8b720a277712b0d924be74c4db1502692efa44/lib/fog/aws/models/storage/file.rb#L12-L27

接下来,我将尝试使用aws-sdkgem 执行这些相同的步骤,它看起来支持 HTTP Range 标头

0 投票
1 回答
551 浏览

ruby - 有什么方法可以从 EC2 windows 实例连接到 VPN?

我有一个公司的 vpn 连接。我想在 ec2 windows 服务器中打开该 vpn 连接以在 ec2 windows 服务器中打开他们的私有 url。我正在寻找一些手动解决方案。之后,我计划使用 aws sdk 和 ruby​​ 进行相同的连接。

有什么帮助吗?

0 投票
1 回答
350 浏览

ruby-on-rails - 如何使用回形针从 s3 访问同一 Ruby on Rails 应用程序中的私有和公共图像

应用程序

我正在编写一个需要从用户那里获取图片并将它们保存在 AWS S3 存储桶中的应用程序。

应用程序/模型/图片.rb

问题

如您所见,我已将 s3_permissions 设置为 true,并且为了访问这些图片,我使用了 expiring_url 方法。现在,我想公开这些图片,所以我评论了 s3_permissions。

上传新图片后,我可以在不使用expiring_url方法的情况下访问图片

并且响应中的 url 在浏览器选项卡中打开了一个图像,但仍然无法访问之前上传的图像(Picture.first)。当我尝试打开网址时,它给了我这个

此外,他们的 s3_permissions 以 public_read 的形式出现。

0 投票
1 回答
4509 浏览

ruby-on-rails - 创建预签名帖子时,AWS SDK 不包括 X-Amz-Credential 中的访问密钥 (AKID),但仅在 Heroku 上

我正在直接上传到 S3,并且我有这样声明的预签名帖子:

在开发环境中,它可以正确构建所有内容,我得到如下信息:

但是在我把它推送到 Heroku 之后,我得到了这样的东西:

现在我的访问密钥 (AKID) 不再存在,我收到此错误:

我的 AWS 凭证在 initalizers/aws.rb 中声明,因此它们不依赖于环境类型。这可能是什么原因造成的?

编辑(显示我如何声明 S3_BUCKET 是我在 aws.rb 中初始化的常量):

Aws.config.update({ region: 'us-east-1', credentials: Aws::Credentials.new(ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']) })

S3_BUCKET = Aws::S3::Resource.new.bucket(ENV['S3_BUCKET'])

此外,两个 presigned-post 对象之间的区别:

"x-amz-credential"=>"<MY_ACCESS_KEY>/20180505/us-east-1/s3/aws4_request"

"x-amz-credential"=>"/20180505/us-east-1/s3/aws4_request"

0 投票
2 回答
39 浏览

amazon-s3 - 查找具有特定路径前缀的资产的 S3 聚合内容长度

我将客户资产存储在 S3 中,一个与帐户相关的值作为每个资产路径中的第一个元素,例如

  • account-1/媒体/视频/382476581823.mp4
  • account-1/images/2348752.png

我想找到一个帐户的所有资产消耗的存储总量——在上面的示例中,路径前缀为“account-1”的所有资产。我有一个可行的解决方案,它遍历 S3 查询返回的 ObjectSummary 对象,但它对我的需求来说太慢了,因为它为每个对象执行一个 HTTP 请求。

我想知道是否可以在 S3 查询中执行类似于您可能对 DynamoDB 执行的计算——要求 S3 执行计算并返回总数。

注意:使用 aws-sdk-ruby

0 投票
0 回答
93 浏览

amazon-web-services - Ruby AWS 开发工具包 (v2/v3) 标记 Spot 实例

根据此链接,可以标记现场车队实例。标签会自动传播到启动的实例。是否可以对普通的现场实例做同样的事情?到目前为止我的方法

为 的创建标签spot_instance_request,但不会传播到已启动的实例。

0 投票
3 回答
2813 浏览

ruby-on-rails - Rails 活动存储无法自动加载常量 ActiveStorage::Blob::Analyzable

我已将 rails 从 5.1.4 更新到 5.2,并删除了 Papaerclip 以使用 Active Storage。我正在使用数字海洋空间。在我的开发环境中,我设置了凭据storage.yml以将图像保存到 digitalocean。

我在 gemfile 中添加了aws-sdk-s3 gem(没有版本,可能是这个问题吗?)。

我运行db:migrate主动存储。

但是,当我要提交带有图片上传 html 标记的表单时,我收到此错误:

无法自动加载常量 ActiveStorage::Blob::Analyzable。

任何人都可以帮助我吗?