Permalink
Browse files

Files controller handle redirect to remote storage. Added config bloc…

…k to carrierwave init
  • Loading branch information...
dzaporozhets committed May 15, 2013
1 parent ced044a commit 9e0246684d14e5323cfb71291faff290e2762f48
Showing with 24 additions and 18 deletions.
  1. +8 −4 app/controllers/files_controller.rb
  2. +5 −5 app/uploaders/attachment_uploader.rb
  3. +11 −9 config/initializers/carrierwave.rb
@@ -1,12 +1,16 @@
class FilesController < ApplicationController
def download
note = Note.find(params[:id])
+ uploader = note.attachment
- if can?(current_user, :read_project, note.project)
- uploader = note.attachment
- send_file uploader.file.path, disposition: 'attachment'
+ if uploader.file_storage?
+ if can?(current_user, :read_project, note.project)
+ send_file uploader.file.path, disposition: 'attachment'
+ else
+ not_found!
+ end
else
- not_found!
+ redirect_to uploader.url
end
end
end
@@ -21,10 +21,10 @@ def image?
end
def secure_url
- if self.class.storage == CarrierWave::Storage::File
- "/files/#{model.class.to_s.underscore}/#{model.id}/#{file.filename}"
- else
- url
- end
+ "/files/#{model.class.to_s.underscore}/#{model.id}/#{file.filename}"
+ end
+
+ def file_storage?
+ self.class.storage == CarrierWave::Storage::File
end
end
@@ -5,13 +5,15 @@
if File.exists?(aws_file)
AWS_CONFIG = YAML.load(File.read(aws_file))[Rails.env]
- config.fog_credentials = {
- provider: 'AWS', # required
- aws_access_key_id: AWS_CONFIG['access_key_id'], # required
- aws_secret_access_key: AWS_CONFIG['secret_access_key'], # required
- region: AWS_CONFIG['region'], # optional, defaults to 'us-east-1'
- }
- config.fog_directory = AWS_CONFIG['bucket'] # required
- config.fog_public = false # optional, defaults to true
- config.fog_attributes = {'Cache-Control'=>'max-age=315576000'} # optional, defaults to {}
+ CarrierWave.configure do |config|
+ config.fog_credentials = {
+ provider: 'AWS', # required
+ aws_access_key_id: AWS_CONFIG['access_key_id'], # required
+ aws_secret_access_key: AWS_CONFIG['secret_access_key'], # required
+ region: AWS_CONFIG['region'], # optional, defaults to 'us-east-1'
+ }
+ config.fog_directory = AWS_CONFIG['bucket'] # required
+ config.fog_public = false # optional, defaults to true
+ config.fog_attributes = {'Cache-Control'=>'max-age=315576000'} # optional, defaults to {}
+ end
end

0 comments on commit 9e02466

Please sign in to comment.