1

我的用户将外部图像 URL (http://their-site.com/photo.jpg) 存储在 - 例如 -@user.external_image中。我正在尝试为 User 类编写一个方法,该方法采用该 URL 并使用 Carrierwave 将其保存到 S3。

所以在上面@user,我想运行@user.save_to_s3并将图像“上传”到 S3。我试图通过将上传器安装:s3_image到 User 类并编写以下方法来做到这一点:

def save_to_s3
  self.remote_s3_image_url = self.external_image
  save
end

但是当我在@user记录上调用该方法时出现以下错误:

“ArgumentError:缺少必需的参数:aws_access_key_id、aws_secret_access_key”

所以它越来越接近,但它没有检索我的 S3 凭据 - 即使它们已设置。我很感激任何想法或建议。

4

1 回答 1

0

事实证明,该问题与 Carrierwave 或 Fog 无关。这是我的疏忽,我设置的 ENV 变量(在我的应用程序.env文件中)没有被加载到引导的 Rails 环境(例如 rails 控制台)中。一旦我将http://github.com/bkeepers/dotenv(它正好解决了这个问题)添加到我的包中,该save_to_s3方法就起作用了。

于 2012-11-10T02:52:45.587 回答