Загрузка / загрузка / загрузка файлов COSITOWAVE & AMAZON S3

У меня есть приложение Rails 3 с UPLOADSUPLAPER и моделью ресурсов, на которой это установлено. Недавно я перешел на использование хранилища S3, и это сломало мою возможность загружать файлы с помощью метода send_to. Я могу включить загрузку, используя метод Redirect_To, который просто пересылает пользователь на аутентифицированный URL S3. Мне нужно аутентифицировать файл загрузки, и я хочу, чтобы URL был http://mydomainname.com/the_file_path или http://mydomainname.com/controller_Action_name/id_of_resource Так что я предполагаю Мне нужно использовать send_to, но есть ли способ сделать это, используя метод Redirect_to? Мой текущий код следует. Resources_controller.rb

def download
  resource = Resource.find(params[:id])
    if resource.shared_items.find_by_shared_with_id(current_user) or resource.user_id == current_user.id
        filename = resource.upload_identifier
        send_file "#{Rails.root}/my_bucket_name_here/uploads/#{filename}"
    else
        flash[:notice] = "You don't have permission to access this file."
        redirect_to resources_path
    end
end

Инициализатор COSIT CONALYWAVE.RB:

CarrierWave.configure do |config|
  config.fog_credentials = {
    :provider               => 'AWS',       # required
    :aws_access_key_id      => 'xxxx',       # copied off the aws site
    :aws_secret_access_key  => 'xxxx',       # 
  }

  config.fog_directory  = 'my_bucket_name_here'                     # required
  config.fog_host       = 'https://localhost:3000'            # optional, defaults to nil
  config.fog_public     = false                                   # optional, defaults to true
  config.fog_attributes = {'Cache-Control'=>'max-age=315576000'}  # optional, defaults to {}
end

UPLOAD_UPLOADER.RB

class UploadUploader < CarrierWave::Uploader::Base
  storage :fog

  def store_dir
    "uploads"
  end
end

Все это бросает ошибку:

не может прочитать файл /home/tom/documents/Ruby/rails/circlshare/my_bucket_name_here/uploads/picture0024.jpg

i попытался прочитать о COSITORWAVE, GOB, DENT_TO и все это, но все, что я пытался, не был плодотворным Отказ Загрузка работает нормально, и я вижу файлы в ведре S3. Использование RE_DIRECT было бы здорово, поскольку файл не пройдет через мой сервер. Любая помощь оценила. Спасибо.

11
задан technix 4 September 2011 в 09:56
поделиться