Я создал приложение, развернутое на героку, которое использует несущую волну для хранения всех загруженных файлов, и я установил хранилище Google для разработчиков для хранения этих файлов там.
Пока здесь все работает нормально, но я хотел бы, чтобы файлы отображались приватно, т.е. пользователь должен быть авторизован для просмотра. В среде разработки все работает очень хорошо.
Чтобы скрыть URL-адрес источника файла от пользователей, я принял следующие решения:
инициализаторы/carrierwave.rb
CarrierWave.configure do |config|
if Rails.env.production?
config.storage = :fog
config.fog_credentials = {
:provider => 'Google',
:google_storage_access_key_id => 'xxx',
:google_storage_secret_access_key => 'yyy'
}
config.fog_directory = 'wwww'
else
config.storage = :file
end
end
контроллер
Это получает содержимое файла, чтобы скрыть его путь и имя от посторонних глаз.
def get_file
if Rails.env.production?
redirect_to URI.encode @media_asset.attachment_url
else
send_file ("public/"+@media_asset.attachment_url.to_s),
:type => @media_asset.attachment_content_type,
:length => @media_asset.attachment_file_size,
:status => "200 OK",
:x_sendfile => true,
:filename => "media_asset",
:disposition => 'inline'
end
end
по-видимому, это сработает, но с помощью обычного инструмента разработчика браузера каждый увидит путь к корзине хранилища Google и сможет получить доступ ко всем файлам.
Вы знаете, как решить эту проблему, возможно ли это сделать с хранилищем Google для разработчиков?
заранее спасибо,