未知常量 AssetsController::S3

Unknown Constants AssetsController::S3

我正在尝试通过我编写的 rails 应用程序从我的 S3 文件服务器下载文件。但是,我很难弄清楚如何实现这一目标。我一直在尝试使用 Amazon 博客中的 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

但是我收到以下错误:

uninitialized constant AssetsController::s3

我正在使用 gem aws-sdk。任何建议将不胜感激。

uninitialized constant 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