Allow uploading of files to google cloud storage. (dirty, but working)
This commit is contained in:
parent
09d81defcd
commit
a8bb122c6a
1
Gemfile
1
Gemfile
|
@ -15,6 +15,7 @@ gem 'pghero', '~> 1.7'
|
||||||
gem 'dotenv-rails', '~> 2.2'
|
gem 'dotenv-rails', '~> 2.2'
|
||||||
|
|
||||||
gem 'aws-sdk', '~> 2.9'
|
gem 'aws-sdk', '~> 2.9'
|
||||||
|
gem 'fog'
|
||||||
gem 'fog-openstack', '~> 0.1'
|
gem 'fog-openstack', '~> 0.1'
|
||||||
gem 'paperclip', '~> 5.1'
|
gem 'paperclip', '~> 5.1'
|
||||||
gem 'paperclip-av-transcoder', '~> 0.6'
|
gem 'paperclip-av-transcoder', '~> 0.6'
|
||||||
|
|
160
Gemfile.lock
160
Gemfile.lock
|
@ -1,6 +1,7 @@
|
||||||
GEM
|
GEM
|
||||||
remote: https://rubygems.org/
|
remote: https://rubygems.org/
|
||||||
specs:
|
specs:
|
||||||
|
CFPropertyList (2.3.5)
|
||||||
actioncable (5.1.4)
|
actioncable (5.1.4)
|
||||||
actionpack (= 5.1.4)
|
actionpack (= 5.1.4)
|
||||||
nio4r (~> 2.0)
|
nio4r (~> 2.0)
|
||||||
|
@ -160,17 +161,159 @@ GEM
|
||||||
i18n (~> 0.5)
|
i18n (~> 0.5)
|
||||||
fast_blank (1.0.0)
|
fast_blank (1.0.0)
|
||||||
ffi (1.9.18)
|
ffi (1.9.18)
|
||||||
|
fission (0.5.0)
|
||||||
|
CFPropertyList (~> 2.2)
|
||||||
|
fog (1.42.0)
|
||||||
|
fog-aliyun (>= 0.1.0)
|
||||||
|
fog-atmos
|
||||||
|
fog-aws (>= 0.6.0)
|
||||||
|
fog-brightbox (~> 0.4)
|
||||||
|
fog-cloudatcost (~> 0.1.0)
|
||||||
|
fog-core (~> 1.45)
|
||||||
|
fog-digitalocean (>= 0.3.0)
|
||||||
|
fog-dnsimple (~> 1.0)
|
||||||
|
fog-dynect (~> 0.0.2)
|
||||||
|
fog-ecloud (~> 0.1)
|
||||||
|
fog-google (<= 0.1.0)
|
||||||
|
fog-internet-archive
|
||||||
|
fog-joyent
|
||||||
|
fog-json
|
||||||
|
fog-local
|
||||||
|
fog-openstack
|
||||||
|
fog-ovirt
|
||||||
|
fog-powerdns (>= 0.1.1)
|
||||||
|
fog-profitbricks
|
||||||
|
fog-rackspace
|
||||||
|
fog-radosgw (>= 0.0.2)
|
||||||
|
fog-riakcs
|
||||||
|
fog-sakuracloud (>= 0.0.4)
|
||||||
|
fog-serverlove
|
||||||
|
fog-softlayer
|
||||||
|
fog-storm_on_demand
|
||||||
|
fog-terremark
|
||||||
|
fog-vmfusion
|
||||||
|
fog-voxel
|
||||||
|
fog-vsphere (>= 0.4.0)
|
||||||
|
fog-xenserver
|
||||||
|
fog-xml (~> 0.1.1)
|
||||||
|
ipaddress (~> 0.5)
|
||||||
|
json (~> 2.0)
|
||||||
|
fog-aliyun (0.2.0)
|
||||||
|
fog-core (~> 1.27)
|
||||||
|
fog-json (~> 1.0)
|
||||||
|
ipaddress (~> 0.8)
|
||||||
|
xml-simple (~> 1.1)
|
||||||
|
fog-atmos (0.1.0)
|
||||||
|
fog-core
|
||||||
|
fog-xml
|
||||||
|
fog-aws (1.4.1)
|
||||||
|
fog-core (~> 1.38)
|
||||||
|
fog-json (~> 1.0)
|
||||||
|
fog-xml (~> 0.1)
|
||||||
|
ipaddress (~> 0.8)
|
||||||
|
fog-brightbox (0.14.0)
|
||||||
|
fog-core (~> 1.22)
|
||||||
|
fog-json
|
||||||
|
inflecto (~> 0.0.2)
|
||||||
|
fog-cloudatcost (0.1.2)
|
||||||
|
fog-core (~> 1.36)
|
||||||
|
fog-json (~> 1.0)
|
||||||
|
fog-xml (~> 0.1)
|
||||||
|
ipaddress (~> 0.8)
|
||||||
fog-core (1.45.0)
|
fog-core (1.45.0)
|
||||||
builder
|
builder
|
||||||
excon (~> 0.58)
|
excon (~> 0.58)
|
||||||
formatador (~> 0.2)
|
formatador (~> 0.2)
|
||||||
|
fog-digitalocean (0.3.0)
|
||||||
|
fog-core (~> 1.42)
|
||||||
|
fog-json (>= 1.0)
|
||||||
|
fog-xml (>= 0.1)
|
||||||
|
ipaddress (>= 0.5)
|
||||||
|
fog-dnsimple (1.0.0)
|
||||||
|
fog-core (~> 1.38)
|
||||||
|
fog-json (~> 1.0)
|
||||||
|
fog-dynect (0.0.3)
|
||||||
|
fog-core
|
||||||
|
fog-json
|
||||||
|
fog-xml
|
||||||
|
fog-ecloud (0.3.0)
|
||||||
|
fog-core
|
||||||
|
fog-xml
|
||||||
|
fog-google (0.1.0)
|
||||||
|
fog-core
|
||||||
|
fog-json
|
||||||
|
fog-xml
|
||||||
|
fog-internet-archive (0.0.1)
|
||||||
|
fog-core
|
||||||
|
fog-json
|
||||||
|
fog-xml
|
||||||
|
fog-joyent (0.0.1)
|
||||||
|
fog-core (~> 1.42)
|
||||||
|
fog-json (>= 1.0)
|
||||||
fog-json (1.0.2)
|
fog-json (1.0.2)
|
||||||
fog-core (~> 1.0)
|
fog-core (~> 1.0)
|
||||||
multi_json (~> 1.10)
|
multi_json (~> 1.10)
|
||||||
|
fog-local (0.4.0)
|
||||||
|
fog-core (~> 1.27)
|
||||||
fog-openstack (0.1.21)
|
fog-openstack (0.1.21)
|
||||||
fog-core (>= 1.40)
|
fog-core (>= 1.40)
|
||||||
fog-json (>= 1.0)
|
fog-json (>= 1.0)
|
||||||
ipaddress (>= 0.8)
|
ipaddress (>= 0.8)
|
||||||
|
fog-ovirt (0.1.1)
|
||||||
|
fog-core (~> 1.45)
|
||||||
|
fog-json
|
||||||
|
fog-xml (~> 0.1.1)
|
||||||
|
rbovirt (~> 0.1.4)
|
||||||
|
fog-powerdns (0.1.1)
|
||||||
|
fog-core (~> 1.27)
|
||||||
|
fog-json (~> 1.0)
|
||||||
|
fog-xml (~> 0.1)
|
||||||
|
fog-profitbricks (4.0.0)
|
||||||
|
fog-core (~> 1.42)
|
||||||
|
fog-json (~> 1.0)
|
||||||
|
fog-rackspace (0.1.5)
|
||||||
|
fog-core (>= 1.35)
|
||||||
|
fog-json (>= 1.0)
|
||||||
|
fog-xml (>= 0.1)
|
||||||
|
ipaddress (>= 0.8)
|
||||||
|
fog-radosgw (0.0.5)
|
||||||
|
fog-core (>= 1.21.0)
|
||||||
|
fog-json
|
||||||
|
fog-xml (>= 0.0.1)
|
||||||
|
fog-riakcs (0.1.0)
|
||||||
|
fog-core
|
||||||
|
fog-json
|
||||||
|
fog-xml
|
||||||
|
fog-sakuracloud (1.7.5)
|
||||||
|
fog-core
|
||||||
|
fog-json
|
||||||
|
fog-serverlove (0.1.2)
|
||||||
|
fog-core
|
||||||
|
fog-json
|
||||||
|
fog-softlayer (1.1.4)
|
||||||
|
fog-core
|
||||||
|
fog-json
|
||||||
|
fog-storm_on_demand (0.1.1)
|
||||||
|
fog-core
|
||||||
|
fog-json
|
||||||
|
fog-terremark (0.1.0)
|
||||||
|
fog-core
|
||||||
|
fog-xml
|
||||||
|
fog-vmfusion (0.1.0)
|
||||||
|
fission
|
||||||
|
fog-core
|
||||||
|
fog-voxel (0.1.0)
|
||||||
|
fog-core
|
||||||
|
fog-xml
|
||||||
|
fog-vsphere (1.13.1)
|
||||||
|
fog-core
|
||||||
|
rbvmomi (~> 1.9)
|
||||||
|
fog-xenserver (0.3.0)
|
||||||
|
fog-core
|
||||||
|
fog-xml
|
||||||
|
fog-xml (0.1.3)
|
||||||
|
fog-core
|
||||||
|
nokogiri (>= 1.5.11, < 2.0.0)
|
||||||
formatador (0.2.5)
|
formatador (0.2.5)
|
||||||
fuubar (2.2.0)
|
fuubar (2.2.0)
|
||||||
rspec-core (~> 3.0)
|
rspec-core (~> 3.0)
|
||||||
|
@ -223,6 +366,7 @@ GEM
|
||||||
rainbow (~> 2.2)
|
rainbow (~> 2.2)
|
||||||
terminal-table (>= 1.5.1)
|
terminal-table (>= 1.5.1)
|
||||||
idn-ruby (0.1.0)
|
idn-ruby (0.1.0)
|
||||||
|
inflecto (0.0.2)
|
||||||
ipaddress (0.8.3)
|
ipaddress (0.8.3)
|
||||||
iso-639 (0.2.8)
|
iso-639 (0.2.8)
|
||||||
jmespath (1.3.1)
|
jmespath (1.3.1)
|
||||||
|
@ -284,6 +428,7 @@ GEM
|
||||||
net-scp (1.2.1)
|
net-scp (1.2.1)
|
||||||
net-ssh (>= 2.6.5)
|
net-ssh (>= 2.6.5)
|
||||||
net-ssh (4.2.0)
|
net-ssh (4.2.0)
|
||||||
|
netrc (0.11.0)
|
||||||
nio4r (2.1.0)
|
nio4r (2.1.0)
|
||||||
nokogiri (1.8.0)
|
nokogiri (1.8.0)
|
||||||
mini_portile2 (~> 2.2.0)
|
mini_portile2 (~> 2.2.0)
|
||||||
|
@ -380,6 +525,14 @@ GEM
|
||||||
rainbow (2.2.2)
|
rainbow (2.2.2)
|
||||||
rake
|
rake
|
||||||
rake (12.1.0)
|
rake (12.1.0)
|
||||||
|
rbovirt (0.1.4)
|
||||||
|
nokogiri
|
||||||
|
rest-client (> 1.7.0)
|
||||||
|
rbvmomi (1.11.3)
|
||||||
|
builder (~> 3.0)
|
||||||
|
json (>= 1.8)
|
||||||
|
nokogiri (~> 1.5)
|
||||||
|
trollop (~> 2.1)
|
||||||
rdf (2.2.9)
|
rdf (2.2.9)
|
||||||
hamster (~> 3.0)
|
hamster (~> 3.0)
|
||||||
link_header (~> 0.0, >= 0.0.8)
|
link_header (~> 0.0, >= 0.0.8)
|
||||||
|
@ -408,6 +561,10 @@ GEM
|
||||||
responders (2.4.0)
|
responders (2.4.0)
|
||||||
actionpack (>= 4.2.0, < 5.3)
|
actionpack (>= 4.2.0, < 5.3)
|
||||||
railties (>= 4.2.0, < 5.3)
|
railties (>= 4.2.0, < 5.3)
|
||||||
|
rest-client (2.0.2)
|
||||||
|
http-cookie (>= 1.0.2, < 2.0)
|
||||||
|
mime-types (>= 1.16, < 4.0)
|
||||||
|
netrc (~> 0.8)
|
||||||
rotp (2.1.2)
|
rotp (2.1.2)
|
||||||
rqrcode (0.10.1)
|
rqrcode (0.10.1)
|
||||||
chunky_png (~> 1.0)
|
chunky_png (~> 1.0)
|
||||||
|
@ -498,6 +655,7 @@ GEM
|
||||||
thread (0.2.2)
|
thread (0.2.2)
|
||||||
thread_safe (0.3.6)
|
thread_safe (0.3.6)
|
||||||
tilt (2.0.8)
|
tilt (2.0.8)
|
||||||
|
trollop (2.1.2)
|
||||||
twitter-text (1.14.7)
|
twitter-text (1.14.7)
|
||||||
unf (~> 0.1.0)
|
unf (~> 0.1.0)
|
||||||
tzinfo (1.2.3)
|
tzinfo (1.2.3)
|
||||||
|
@ -527,6 +685,7 @@ GEM
|
||||||
websocket-driver (0.6.5)
|
websocket-driver (0.6.5)
|
||||||
websocket-extensions (>= 0.1.0)
|
websocket-extensions (>= 0.1.0)
|
||||||
websocket-extensions (0.1.2)
|
websocket-extensions (0.1.2)
|
||||||
|
xml-simple (1.1.5)
|
||||||
xpath (2.1.0)
|
xpath (2.1.0)
|
||||||
nokogiri (~> 1.3)
|
nokogiri (~> 1.3)
|
||||||
|
|
||||||
|
@ -561,6 +720,7 @@ DEPENDENCIES
|
||||||
fabrication (~> 2.16)
|
fabrication (~> 2.16)
|
||||||
faker (~> 1.7)
|
faker (~> 1.7)
|
||||||
fast_blank (~> 1.0)
|
fast_blank (~> 1.0)
|
||||||
|
fog
|
||||||
fog-openstack (~> 0.1)
|
fog-openstack (~> 0.1)
|
||||||
fuubar (~> 2.2)
|
fuubar (~> 2.2)
|
||||||
goldfinger (~> 2.0)
|
goldfinger (~> 2.0)
|
||||||
|
|
|
@ -11,7 +11,7 @@ Rails.application.configure do
|
||||||
config.x.local_domain = host
|
config.x.local_domain = host
|
||||||
config.x.web_domain = web_host
|
config.x.web_domain = web_host
|
||||||
config.x.use_https = https
|
config.x.use_https = https
|
||||||
config.x.use_s3 = ENV['S3_ENABLED'] == 'true'
|
config.x.use_s3 = ENV['S3_ENABLED'] == 'true' || ENV['GCS_ENABLED'] == 'true'
|
||||||
config.x.use_swift = ENV['SWIFT_ENABLED'] == 'true'
|
config.x.use_swift = ENV['SWIFT_ENABLED'] == 'true'
|
||||||
|
|
||||||
config.x.alternate_domains = alternate_domains.split(/\s*,\s*/)
|
config.x.alternate_domains = alternate_domains.split(/\s*,\s*/)
|
||||||
|
|
|
@ -64,3 +64,23 @@ else
|
||||||
Paperclip::Attachment.default_options[:path] = (ENV['PAPERCLIP_ROOT_PATH'] || ':rails_root/public/system') + '/:class/:attachment/:id_partition/:style/:filename'
|
Paperclip::Attachment.default_options[:path] = (ENV['PAPERCLIP_ROOT_PATH'] || ':rails_root/public/system') + '/:class/:attachment/:id_partition/:style/:filename'
|
||||||
Paperclip::Attachment.default_options[:url] = (ENV['PAPERCLIP_ROOT_URL'] || '/system') + '/:class/:attachment/:id_partition/:style/:filename'
|
Paperclip::Attachment.default_options[:url] = (ENV['PAPERCLIP_ROOT_URL'] || '/system') + '/:class/:attachment/:id_partition/:style/:filename'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if ENV['GCS_ENABLED'] == 'true'
|
||||||
|
Paperclip::Attachment.default_options.update({
|
||||||
|
:path => "images/:class/:id/:attachment/:style/img_:fingerprint",
|
||||||
|
:storage => :fog,
|
||||||
|
:fog_credentials => {
|
||||||
|
:provider => 'Google',
|
||||||
|
:google_storage_access_key_id => ENV.fetch('GCS_ACCESS_KEY_ID'),
|
||||||
|
:google_storage_secret_access_key => ENV.fetch('GCS_SECRET_ACCESS_KEY'),
|
||||||
|
:path_style => !ENV['GCS_ALIAS_HOST'].blank?
|
||||||
|
},
|
||||||
|
:fog_directory => ENV.fetch('GCS_BUCKET'),
|
||||||
|
:fog_public => true,
|
||||||
|
:fog_host => 'https://' + ENV.fetch('GCS_BUCKET'),
|
||||||
|
})
|
||||||
|
|
||||||
|
unless ENV['GCS_ALIAS_HOST'].blank?
|
||||||
|
Paperclip::Attachment.default_options[:url] = ENV['GCS_ALIAS_HOST']
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
Reference in a new issue