未知常量AssetsController :: S3

时间:2015-10-06 04:33:45

标签: ruby-on-rails ruby amazon-web-services amazon-s3 aws-sdk

我试图通过我编写的rails应用程序从我的S3文件服务器下载文件。但是,我很难弄清楚如何实现这一目标。我一直在尝试使用亚马逊博客中的this reference来使其发挥作用。

在我的控制器的get方法中,我有以下内容:

asset = current_user.assets.find_by_id(params[:id])
File.open('filename', 'wb') do |file|
  reap = s3.get_object({ bucket:'bucket-name', key: URI.encode(asset.uploaded_file.url)}, target: file)
end

但是我收到以下错误:

  

未初始化的常量AssetsController :: s3

我正在使用gem aws-sdk。任何建议都会非常感激。

1 个答案:

答案 0 :(得分:1)

  

未初始化的常量AssetsController :: s3

您需要定义s3,以下内容应该有效

asset = current_user.assets.find_by_id(params[:id])
File.open('filename', 'wb') do |file|
  s3 = Aws::S3::Client.new
  reap = s3.get_object({ bucket:'bucket-name', key: URI.encode(asset.uploaded_file.url)}, target: file)
end