Я хотел бы загрузить файл в корзину Amazon S3 из приложения rails.Файл приходит через пользователя, загружающего его.У меня возникают трудности с поиском подходящей документации для этого из-за разных версий 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 %>
Я использую маршруты restful, поэтому единственная соответствующая информация о маршрутизации - resources :messages
Я использую rails 6.0.0beta, но это не так важно.Я использую версию 3 драгоценного камня aws-sdk.