问题标签 [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.
ruby - AWS 市场授权服务 api 没有响应
在尝试获取 AWS 上交付的产品的权利信息时:
我得到:
凭据中的用户具有:
AWSMarketplace 完全访问权限
和
AWSMarketplaceGetEntitlements
这与将 us-east-1 作为区域相同的错误。您对如何解决这个问题有任何想法吗?
aws-sdk - Localstack:awscli 工作,aws-sdk 引发错误
我想将localstack与 ruby 一起使用aws-sdk
。似乎 aws sdk 错过了一些配置或有错误,它会引发错误:
之后
它提出了一个:
在同一个容器上,如果我awscli
完全没有问题:
我创建了一个 docker-compose.yml 来帮助解决这个问题:
https://github.com/ook/localstack-s3-problem
我在自述文件中注意到我现在尝试了什么。
请指教 :)
ruby - 带有 get_object 的预签名 URL 的 SignatureDoesNotMatch
很简单的东西(我想)。我正在尝试创建一个预签名的 url,然后我可以用它来下载文件。这些密钥对应的 IAM 用户拥有 fullS3Acess,直到我弄清楚为什么这个签名不起作用。
当我尝试在浏览器中打开从 presigned_url 方法返回的 url 时,会导致 SignatureDoesNotMatch 错误。关于为什么这是真的有什么想法吗?我想我已经排除了权限作为答案,因为我已经将该用户的 IAM 权限增加到了应有的位置。有任何想法吗?
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-aws
gem 中接受的 HTTP 标头属性:
接下来,我将尝试使用aws-sdk
gem 执行这些相同的步骤,它看起来支持 HTTP Range 标头
ruby - 有什么方法可以从 EC2 windows 实例连接到 VPN?
我有一个公司的 vpn 连接。我想在 ec2 windows 服务器中打开该 vpn 连接以在 ec2 windows 服务器中打开他们的私有 url。我正在寻找一些手动解决方案。之后,我计划使用 aws sdk 和 ruby 进行相同的连接。
有什么帮助吗?
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 的形式出现。
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"
amazon-s3 - 查找具有特定路径前缀的资产的 S3 聚合内容长度
我将客户资产存储在 S3 中,一个与帐户相关的值作为每个资产路径中的第一个元素,例如
- account-1/媒体/视频/382476581823.mp4
- account-1/images/2348752.png
我想找到一个帐户的所有资产消耗的存储总量——在上面的示例中,路径前缀为“account-1”的所有资产。我有一个可行的解决方案,它遍历 S3 查询返回的 ObjectSummary 对象,但它对我的需求来说太慢了,因为它为每个对象执行一个 HTTP 请求。
我想知道是否可以在 S3 查询中执行类似于您可能对 DynamoDB 执行的计算——要求 S3 执行计算并返回总数。
注意:使用 aws-sdk-ruby
amazon-web-services - Ruby AWS 开发工具包 (v2/v3) 标记 Spot 实例
根据此链接,可以标记现场车队实例。标签会自动传播到启动的实例。是否可以对普通的现场实例做同样的事情?到目前为止我的方法
为 的创建标签spot_instance_request
,但不会传播到已启动的实例。
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。
任何人都可以帮助我吗?