问题标签 [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 投票
0 回答
24 浏览

amazon-s3 - 使用 Ruby aws-sdk 将 cache_control 添加到图像

我正在尝试通过 Ruby 脚本将 cache_control 添加到 s3 存储桶中的图像,但我一直遇到Access Denied (Aws::S3::Errors::AccessDenied)错误。我所有的环境变量都是正确的,并且使用脚本创建新存储桶没有问题,只是每次我尝试添加 cache_control 时都会引发错误。

我已经尝试深入研究aws-sdk文档https://docs.aws.amazon.com/sdk-for-ruby/v2/api/Aws/S3/Object.html,但我一直无法理解围绕我的脚本有什么问题。

以下是代码运行时的样子:

以下是当我尝试添加 cache_control 和其他选项时收到拒绝访问错误时的代码:

任何帮助将不胜感激!

0 投票
0 回答
29 浏览

ruby - 如何使用 aws-sdk-ec2/client.rb 的 run_instance 配置实例?

我希望你们一切都好。

我想使用 ruby​​ 为集群创建一个实例。

首先,我创建了客户端:

之后,我尝试为 user_data 字段准备一个变量:

最后但并非最不重要的一点是,我尝试使用 run_instances 方法创建实例:

实例已创建,但 ecs.config 文件的内容为空。我不确定我做错了什么。

我希望文件会在ECS_CLUSTER=test里面。

谁能给我一个提示如何解决这个问题,好吗?

谢谢!

0 投票
2 回答
793 浏览

ruby - Ruby:使用 AWS 实例配置文件进行 S3 访问

我有一个附有配置文件的 ec2 实例。我可以使用 awscli,它可以很好地上传到存储桶。

不过,我无法让它与 ruby​​ 中的 aws-sdk 一起使用。我被拒绝访问。

0 投票
1 回答
76 浏览

ruby-on-rails - Rails ActiveJob 无法加载 aws-sdk-transcribeservice

在我的 Rails 应用程序中,我需要使用 AWS Transcribe 服务。但是,当我尝试从 ActiveJob 内部创建 AWS 客户端时,Sidekiq 日志总是给我NameError: uninitialized constant Aws::TranscribeService. 但是,当我尝试直接从 Rails 控制台创建客户端时,它并没有抱怨。这是我的代码。

/app/job/transcribe_audio_job.rb

宝石文件

如果我直接在 Rails 控制台中尝试,上面的代码就可以工作。

从 ActiveJob 使用 AWS 开发工具包的正确方法是什么?谢谢你的帮助。

0 投票
0 回答
228 浏览

ruby-on-rails - 如何确定 aws s3 sdk 错误的级别错误?

问题

我正在尝试确定 AWS ruby​​ SDK 返回的错误是服务器错误还是客户端错误。

使用gem 'aws-sdk-s3', '~> 1'.

查看文档:https ://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/Errors/ServiceError.html#code-instance_method指定返回错误级别 400~>599作为一个ServiceError. 但是如何识别子集:500~>599?

我通过以下检查捕获异常:

我无法弄清楚“缺失的部分”是什么。

解决方案

Aws::S3::Errors::ServiceError有一个上下文参数,它本身有一个http_response

0 投票
1 回答
415 浏览

ruby-on-rails - AWS S3 在生产中找不到凭证?

当我尝试将数据播种到 heroku(生产)上的应用程序时,我看到:

Aws::S3::Errors::AccessDenied:拒绝访问

当我尝试手动测试时:

但这是不可能的,因为

如果我在 heroku: 上的 rails 控制台中运行它Rails.application.credentials.dig(:aws, :access_key_id),那么我会看到密钥。所以它给出了“缺少凭据”错误,但我知道它可以看到凭据。诡异的。

所以我来到了我认为我错过了一些(可能是基本的)步骤的地方,但我不知道是什么。

其他注意事项:

  • 我确认通过简单运行设置了rails主密钥heroku run env,我可以看到它
0 投票
1 回答
871 浏览

ruby-on-rails - 如何使用预签名 URL 以及 s3 aws-sdk-ruby v3 中的标签上传对象

我正在尝试使用预签名 URL 上传对象。但我想将对象与标签一起上传。正确的方法是什么?

方法一:

我尝试了以下红宝石代码:

但这只是上传对象,而不是添加标签。

方法二:

我尝试将“x-amz-tagging”标头列入白名单,并尝试从客户端上传文件以及标头。

红宝石代码:

客户端代码:

但这在上传说“x-amz-tagging”未签名时给我一个错误。

我正在使用 aws-sdk-ruby v3 (Ror)

0 投票
1 回答
82 浏览

ruby - 为什么我在 Aws::SQS::Errors::NonExistentQueue 上找不到任何文档

Aws::SQS::Errors::NonExistentQueue找不到队列时,SQS 客户端会引发错误。但为什么

https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SQS/Errors.html该文档没有提及它。但是,我在这里找到它https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueUrl.html#API_GetQueueUrl_Errors。但是,这是一个通用的 api 文档,并不特定于 Ruby。

是否缺少文档,是否有一种简单的方法可以找到抛出的错误?

0 投票
1 回答
372 浏览

ruby - 如何使用以 ruby​​ 启动的 SSM 端口转发会话的结果?

我无法协调使用 aws cli 和 ruby​​ sdk 与实例建立 ssm 连接之间的差异。例如,如果我尝试使用如下命令:

该工具将暂停,因为它打开了从目标实例上的端口 3000 到我的本地计算机上的端口 13000 的端口转发会话。然后,我可以在我的机器上打开一个 Web 浏览器并将其指向http://localhost:13000以浏览远程实例上运行的应用程序。此外,我可以查看 AWS 控制台 UI 并看到有一个活动会话,直到我 Ctrl-C

我遇到的麻烦是当我尝试使用 ruby​​ sdk 做同样的事情时:

result对象是一个结构,如下所示:

同样,我可以在控制台 UI 中看到有一个活动会话。但是,如果我尝试http://localhost:13000在我的机器上浏览,浏览器将无法访问任何内容。如何使用生成的流 url 和令牌来实际创建到 ec2 实例的连接?

额外细节:

  • ruby sdk 的核心 gem 版本:3.109.2
  • aws cli 版本 - aws-cli/2.1.16
  • aws ssm 代理版本 - amazon-ssm-agent-3.0.356.0-1.x86_64
0 投票
1 回答
56 浏览

ruby-on-rails - SES SDK Rails6 没有选择区域

更新:

我打开了

这导致报告有关正在使用的区域的错误 - 这不是我配置的那个。

但是,在我配置的 AWS_REGION 下面是 ap-southeast-2 (应该对 SES 有效)。

--

我已将我的 rails6 应用程序设置为通过 SES 发送电子邮件,但是当我发送电子邮件时,我的日志报告它已发送,但在 To: 地址未收到它并且没有报告错误。该电子邮件也不会出现在控制台统计信息中。

我已经授权/验证了我的域和电子邮件地址,并且在 AWS 控制台中编写的测试电子邮件已成功发送。

我已经使用 Figaro 设置了我的环境变量并使用初始化程序加载:

我的地区是支持 SES 的 ap-southeast-2。

我刚刚更新了 gem,但问题仍然存在:

因此,在没有错误消息并且控制台中没有任何可见内容的情况下,我不知道接下来要尝试什么......

提前致谢。