lib/datapimp/sync/s3_bucket.rb in datapimp-1.0.9 vs lib/datapimp/sync/s3_bucket.rb in datapimp-1.0.10
- old
+ new
@@ -3,13 +3,31 @@
class S3Bucket < Hashie::Mash
include Datapimp::Logging
# returns the s3 bucket via fog
def s3
- @s3 ||= Datapimp::Sync.amazon.storage.directories.get(remote)
+ @s3 ||= storage.directories.get(remote).tap do |bucket|
+ if setup_website == true
+ bucket.public = true
+ bucket.save
+ storage.put_bucket_website(remote, 'index.html', key: 'error.html')
+ end
+
+ if redirect == true
+ binding.pry
+ end
+ end
end
+ def cloudfront
+ @cloudfront ||= Datapimp::Sync::CloudfrontDistribution.new(bucket: remote)
+ end
+
+ def storage
+ Datapimp::Sync.amazon.storage
+ end
+
def website_hostname
"#{s3.key}.s3-website-#{ s3.location }.amazonaws.com"
end
def website_url(proto="http")
@@ -112,14 +130,18 @@
end
def run_create_action(options={})
directories = Datapimp::Sync.amazon.storage.directories
- if existing = directories.get(remote)
- return existing
+ bucket = if existing = directories.get(remote)
+ existing
else
- directories.create(key:remote)
+ directories.create(key:remote, public: true)
end
+
+ storage.put_bucket_website(remote, :IndexDocument => 'index.html', :ErrorDocument => 'error.html')
+
+ bucket
end
def run(action, options={})
action = action.to_sym