【发布时间】:2021-12-27 07:23:56
【问题描述】:
想要实现
红宝石 2.6.5
Rails 6.0.4
亚马逊 AWS S3
谢谢收看。
我正在 Rails 中创建一个应用程序。
我想将图像上传到 AWS S3,但在日志中出现以下错误,无法上传
rescue500 => SocketError : getaddrinfo: Name or service not known
/home/ec2-user/test_app/web/app/services/clamav_service.rb:4:in `initialize'
config/environments/production.rb
config.x.s3.local = false
config.x.s3.region = ENV["AWS_S3_REGION"]
config.x.s3.bucket = ENV["AWS_S3_BUCKET"]
config.x.s3.access_key = ENV["AWS_S3_ACCESS_KEY"]
config.x.s3.secret_access_key = ENV["AWS_S3_SECRET_ACCESS_KEY"]
config.x.s3.password = ENV["AWS_S3_PASSWORD"]
config.x.s3.path = ENV["AWS_S3_PATH"]
ec2中的环境变量
AWS_S3_REGION=ap-northeast-1
AWS_S3_BUCKET=xxx
AWS_S3_ACCESS_KEY=yyy
AWS_S3_SECRET_ACCESS_KEY=zzz
AWS_S3_PASSWORD=
AWS_S3_PATH=uploads/
我们进行了以下设置。
我已经确认 AWS_S3_ACCESS_KEY 和 AWS_S3_SECRET_ACCESS_KEY 是正确的。
在我的本地环境中,我能够成功上传,所以我认为这是我的环境中的一个错误。
如果您能告诉我是否遗漏了什么,我将不胜感激。
【问题讨论】:
-
您确定所有
ENV['...']都输入正确并具有正确的值吗?错误只能来自那里。 -
你在
clamav_service.rb:4:ininitialize'`做了什么? -
使用
services/clamav_service.rb:4更新以查看代码。理想情况下,您可以在 Rails 控制台中进行调试,调用该行。