bcms_s3 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +5 -2
- data/lib/bcms_s3/s3_module.rb +17 -0
- metadata +1 -1
data/README.markdown
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# A [BrowserCMS](http://www.browsercms.org) module to allow storage of images and files on the Amazon S3 storage facility
|
2
2
|
## Using S3 for file storage
|
3
|
-
To enable S3 file storage set Cms::S3
|
3
|
+
To enable S3 file storage set Cms::S3.enabled in config/initializers/browsercms.rb (create this if it does not exist) to true. Ensure that you as provide a s3.yml file that contains your credentials and bucket.
|
4
4
|
This should be in the following format
|
5
5
|
|
6
6
|
access_key_id: your AWS access key
|
@@ -8,7 +8,10 @@ This should be in the following format
|
|
8
8
|
bucket: your unique bucket name
|
9
9
|
|
10
10
|
## Using this module with [Heroku](http://heroku.com)
|
11
|
-
If using this module in conjunction with deployment on heroku you should probably turning heroku caching on by setting Cms::S3
|
11
|
+
If using this module in conjunction with deployment on heroku you should probably turning heroku caching on by setting Cms::S3.heroku_caching in config/initializers/browsercms.rb to true.
|
12
|
+
|
13
|
+
## www prefix for non cms urls
|
14
|
+
If your non cms domain is www.myapp.com rather than app.com this can be enabled by setting Cms::S3.www_domain_prefix in config/initializers/browsercms.rb to true.
|
12
15
|
|
13
16
|
## Important things to note
|
14
17
|
1. The s3.yml should be excluded from public repositories (e.g github) since it contains your secret AWS key which should **never** be revealed to the public.
|
data/lib/bcms_s3/s3_module.rb
CHANGED
@@ -4,6 +4,7 @@ module Cms
|
|
4
4
|
class << self
|
5
5
|
attr_accessor :enabled
|
6
6
|
attr_accessor :heroku_caching
|
7
|
+
attr_accessor :www_domain_prefix
|
7
8
|
attr_accessor :options
|
8
9
|
end
|
9
10
|
module ContentController
|
@@ -87,15 +88,31 @@ module Cms
|
|
87
88
|
end
|
88
89
|
end
|
89
90
|
end
|
91
|
+
module ApplicationController
|
92
|
+
def self.included(controller_class)
|
93
|
+
controller_class.alias_method_chain :url_without_cms_domain_prefix, :www
|
94
|
+
end
|
95
|
+
def url_without_cms_domain_prefix_with_www
|
96
|
+
if Cms::S3.www_domain_prefix
|
97
|
+
request.url.sub(/#{cms_domain_prefix}\./,'www.')
|
98
|
+
else
|
99
|
+
request.url.sub(/#{cms_domain_prefix}\./,'')
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
90
103
|
end
|
91
104
|
end
|
92
105
|
|
93
106
|
Cms::ContentController.send(:include, Cms::S3::ContentController)
|
94
107
|
Attachment.send(:include, Cms::S3::Attachment)
|
108
|
+
Cms::ApplicationController.send(:include, Cms::S3::ApplicationController)
|
95
109
|
# ensure S3 storage disabled by default
|
96
110
|
Cms::S3.enabled = false if Cms::S3.enabled.nil?
|
97
111
|
# ensure heroku caching disabled by default
|
98
112
|
Cms::S3.heroku_caching = false if Cms::S3.heroku_caching.nil?
|
113
|
+
# function to set domain prefix without url to 'www' is disabled by default
|
114
|
+
Cms::S3.www_domain_prefix = false if Cms::S3.www_domain_prefix.nil?
|
115
|
+
# load s3 options if s3.yml exists
|
99
116
|
if File.exists?("#{RAILS_ROOT}/config/s3.yml")
|
100
117
|
Cms::S3.options = YAML.load_file("#{RAILS_ROOT}/config/s3.yml")
|
101
118
|
Cms::S3.options.symbolize_keys!
|