Ruby on rails Carrierwave-作为独立操作保存到S3
我的用户存储一个外部图像URL(http://their-site.com/photo.jpg)在-例如-Ruby on rails Carrierwave-作为独立操作保存到S3,ruby-on-rails,ruby,amazon-s3,carrierwave,fog,Ruby On Rails,Ruby,Amazon S3,Carrierwave,Fog,我的用户存储一个外部图像URL(http://their-site.com/photo.jpg)在-例如-@user.external_image。我正在尝试为用户类编写一个方法,该方法获取该URL并使用Carrierwave将其保存到S3 因此,在上面的@user,我想运行@user.save_to_s3,并让它将图像“上传”到s3。为此,我尝试在:s3\u image上向用户类装载一个上载程序,并编写以下方法: def save_to_s3 self.remote_s3_image_ur
@user.external_image
。我正在尝试为用户类编写一个方法,该方法获取该URL并使用Carrierwave将其保存到S3
因此,在上面的@user
,我想运行@user.save_to_s3
,并让它将图像“上传”到s3。为此,我尝试在:s3\u image
上向用户类装载一个上载程序,并编写以下方法:
def save_to_s3
self.remote_s3_image_url = self.external_image
save
end
但是,当我在@user
记录上调用该方法时,会出现以下错误:
ArgumentError:缺少必需的参数:aws\u访问\u密钥\u id、aws\u机密\u访问\u密钥
所以它离我越来越近了,但它无法检索我的S3凭据——即使它们已经设置好了。如果您有任何想法或建议,我将不胜感激。问题与Carrierwave或Fog无关。我的疏忽是,我设置的环境变量(在我的应用程序的
.ENV
文件中)没有加载到引导的Rails环境中(例如Rails控制台)。一旦我在我的bundle中添加了(正好解决了这个问题),那么save\u to\u s3
方法就起作用了。你能清楚地说明你是如何解决这个问题的吗。我在initializer文件夹中已经有一个carrierwave.rb,但它仍然没有读取aws_密钥