【发布时间】:2019-06-24 08:14:39
【问题描述】:
我想从 Rails 应用程序将文件上传到 Amazon S3 存储桶。该文件来自用户上传它。由于 aws-sdk 的版本不同,我很难找到合适的文档。此外,acl: :public_read 是故意的。我只希望授权用户上传,但任何人都应该能够访问它。
我当前的问题是我无法索引到延迟加载的集合中。 Google 没有提供关于如何不延迟加载的有用信息。
这是我的相关代码。请注意,new 和 show 的控制器操作目前为空。
messages_controller.rb
def create
# Creates the file object
obj = $S3.bucket(TEST_BUCKET).objects[params[:file].original_filename]
# Uploads the file
obj.write(
file: params[:file],
acl: :public_read
)
end
new.html.erb
<h1>Upload a file</h1>
<%= form_tag messages_path, enctype: 'multipart/form-data' do %>
<%= file_field_tag :file %>
<%= submit_tag 'Upload file' %>
<% end %>
我使用的是安静的路由,所以唯一相关的路由信息是 resources :messages
我正在运行 rails 6.0.0beta,这并不重要。我正在使用版本 3 的 aws-sdk gem。
【问题讨论】:
标签: ruby-on-rails amazon-web-services amazon-s3 aws-sdk