mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-12-29 03:35:25 +08:00
58 lines
1.6 KiB
Ruby
58 lines
1.6 KiB
Ruby
|
|
if ENV['PAPERCLIP_HASH_SECRET'].nil?
|
|
puts "WARNING! Environment variable PAPERCLIP_HASH_SECRET must be set."
|
|
exit 1
|
|
end
|
|
|
|
Paperclip::Attachment.default_options.merge!({
|
|
hash_data: ':class/:attachment/:id/:style',
|
|
hash_secret: ENV['PAPERCLIP_HASH_SECRET'],
|
|
preserve_files: false,
|
|
url: '/system/:class/:attachment/:id_partition/:hash/:style/:filename'
|
|
})
|
|
|
|
if ENV['PAPERCLIP_STORAGE'] == "s3"
|
|
|
|
if ENV['S3_BUCKET'].nil? or ENV['AWS_REGION'].nil? or
|
|
ENV['AWS_ACCESS_KEY_ID'].nil? or ENV['AWS_SECRET_ACCESS_KEY'].nil?
|
|
puts "WARNING! Environment variables S3_BUCKET, AWS_REGION, " +
|
|
"AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY must be set."
|
|
exit 1
|
|
end
|
|
Paperclip::Attachment.default_options.merge!({
|
|
url: ':s3_domain_url',
|
|
path: '/:class/:attachment/:id_partition/:hash/:style/:filename',
|
|
storage: :s3,
|
|
s3_host_name: "s3.#{ENV['AWS_REGION']}.amazonaws.com",
|
|
s3_protocol: 'https',
|
|
s3_credentials: {
|
|
bucket: ENV['S3_BUCKET'],
|
|
access_key_id: ENV['AWS_ACCESS_KEY_ID'],
|
|
secret_access_key: ENV['AWS_SECRET_ACCESS_KEY']
|
|
},
|
|
s3_permissions: {
|
|
original: :private
|
|
},
|
|
s3_storage_class: {
|
|
medium: :reduced_redundancy,
|
|
thumb: :reduced_redundancy,
|
|
icon: :reduced_redundancy,
|
|
icon_small: :reduced_redundancy
|
|
}
|
|
})
|
|
elsif ENV['PAPERCLIP_STORAGE'] == "filesystem"
|
|
Paperclip::Attachment.default_options.merge!({
|
|
storage: :filesystem
|
|
})
|
|
|
|
end
|
|
|
|
Paperclip::Attachment.class_eval do
|
|
def is_stored_on_s3?
|
|
options[:storage].to_sym == :s3
|
|
end
|
|
|
|
def fetch
|
|
Paperclip.io_adapters.for self
|
|
end
|
|
end
|