2016-04-03 12 views
0

Ich habe eine Schiene 4 App. Ich versuche, ein Unterordner-System für verschiedene Refile-Uploader auf S3 zu erstellen. Ich habe den folgenden Code ausprobiert, aber es hat nicht funktioniert. Nichts wurde in S3 hochgeladen oder in der App angezeigt.Schienen S3 Unterordner mit Refil

Was habe ich vermisst?

Die Protokolle:

20:24:09 puma.1 | Started GET "/attachments/refile_caches_backend/presign?t=1459707849942.0" for ::1 at 2016-04-03 20:24:09 +0200 
20:24:10 puma.1 | Refile::App: [2016-04-03 20:24:10 +0200] GET "/refile_caches_backend/presign?t=1459707849942.0" 404 29.7ms 

refile.rb

require "refile/s3" 

aws = { 
    access_key_id: ENV['AWS_ACCESS_KEY_ID'], 
    secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'], 
    region: "us-east-1", 
    bucket: ENV['S3_BUCKET_NAME'] 
} 

message_files = aws.merge({bucket: "message_files"}) 
product_files = aws.merge({bucket: "product_files"}) 
refile_caches = aws.merge({bucket: "refile_caches"}) 

Refile.backends["message_files_backend"] = Refile::S3.new(prefix: "store", **message_files) 
Refile.backends["product_files_backend"] = Refile::S3.new(prefix: "store", **product_files) 
Refile.backends["refile_caches_backend"] = Refile::S3.new(max_size: 5.megabytes, prefix: "cache", **refile_caches) 
Refile.cdn_host = ENV['CLOUDFRONT_URL'] 

message.rb

class Message < ActiveRecord::Base 
    attachment :message_attachment, store: 'message_files_backend', cache: 'refile_caches_backend' ,extension: ["pdf", "doc", "docx", "xls", "xlsx", "html", "png", "img", "jpg"] 
end 

Antwort

0

Ich weiß nicht, warum, aber ich konnte den Cache nicht konfigurieren Refile.backends, also habe ich es so gelassen, wie es war, denn dieser Teil scheint nicht entscheidend zu sein.

Für die Speicherung der Backend-Konfiguration werden Dateien in den gewünschten Unterordner hochgeladen.

Refile.backends["message_files_backend"] = Refile::S3.new(prefix: "store/message_files", **aws) 
Refile.backends["product_files_backend"] = Refile::S3.new(prefix: "store/product_files", **aws) 
Refile.cache = Refile::S3.new(max_size: 5.megabytes, prefix: "cache", **aws) 

#in the model thanks to using the default cache it doesn't have to be defined 
class Message < ActiveRecord::Base 
    attachment :message_attachment, store: 'message_files_backend', extension: ["pdf", "doc", "docx", "xls", "xlsx", "html", "png", "img", "jpg"] 
end 
Verwandte Themen