2017-08-24 22 views
0

私はアプリケーションでElfinder Rails for Media Mangerを使用しています。 Amazon S3ストレージにメディアファイルを保存するために取り組んでいます。私は宝石el_finder_s3を使用しようとします。私はバケツを作り、すべての構成を用意しました。Elfinder RailsとAmazon S3

def elfinder 
    ElFinderS3::Connector.new(
     :mime_handler => ElFinderS3::MimeType, 
     :root => '/', 
     :url => 's3.ap-southeast-1.amazonaws.com', 
     :thumbs => true, 
     :thumbs_size => 100, 
     :thumbs_directory => 'thumbs', 
     :home => t('admin.media.home'), 
     :original_filename_method => lambda { |file| "#{File.basename(file.original_filename, File.extname(file.original_filename)).parameterize}#{File.extname(file.original_filename)}" }, 
     :default_perms => {:read => true, :write => true, :rm => true, :hidden => false}, 
     :server => { 
     :bucket_name => 'bucket_name', 
     :region => 'ap-southeast-1', 
     :access_key_id => 'acces_key', 
     :secret_access_key => 'secret_key', 
     :cdn_base_path => 's3.ap-southeast-1.amazonaws.com' 
     } 
    ).run(params) 
    end 

RailsアプリケーションはS3と接続していますが、elfinderはファイルの内容を表示しません。バケツを確認したところ、サムフォルダが作成されましたが、elfinderは内容をロードできませんでした。 screen shot

私はそれを修正するのを助けてください。

答えて

0

上記のスクリプトの更新で修正されています。ここに更新されたスクリプトがあります。

def elfinder 
    h, r = ElFinderS3::Connector.new(
     :mime_handler => ElFinderS3::MimeType, 
     :root => '/', 
     :url => 's3.ap-southeast-1.amazonaws.com', 
     :thumbs => true, 
     :thumbs_size => 100, 
     :thumbs_directory => 'thumbs', 
     :home => t('admin.media.home'), 
     :original_filename_method => lambda { |file| "#{File.basename(file.original_filename, File.extname(file.original_filename)).parameterize}#{File.extname(file.original_filename)}" }, 
     :default_perms => {:read => true, :write => true, :rm => true, :hidden => false}, 
     :server => { 
     :bucket_name => 'bucket_name', 
     :region => 'ap-southeast-1', 
     :access_key_id => 'acces_key', 
     :secret_access_key => 'secret_key', 
     :cdn_base_path => 's3.ap-southeast-1.amazonaws.com' 
     } 
    ).run(params) 
headers.merge!(h) 

if r.empty? 
    (render :nothing => true) and return 
end 

render :json => r, :layout => false 
end