Allow custom s3 options for S3Helper
.
This commit is contained in:
parent
37b68f10ae
commit
11356fb9f4
1 changed files with 8 additions and 12 deletions
|
@ -2,7 +2,9 @@ require "aws-sdk"
|
||||||
|
|
||||||
class S3Helper
|
class S3Helper
|
||||||
|
|
||||||
def initialize(s3_upload_bucket, tombstone_prefix='')
|
def initialize(s3_upload_bucket, tombstone_prefix='', s3_options=default_s3_options)
|
||||||
|
@s3_options = s3_options
|
||||||
|
|
||||||
@s3_bucket, @s3_bucket_folder_path = begin
|
@s3_bucket, @s3_bucket_folder_path = begin
|
||||||
raise Discourse::InvalidParameters.new("s3_bucket") if s3_upload_bucket.blank?
|
raise Discourse::InvalidParameters.new("s3_bucket") if s3_upload_bucket.blank?
|
||||||
s3_upload_bucket.downcase.split("/".freeze, 2)
|
s3_upload_bucket.downcase.split("/".freeze, 2)
|
||||||
|
@ -14,8 +16,6 @@ class S3Helper
|
||||||
else
|
else
|
||||||
tombstone_prefix
|
tombstone_prefix
|
||||||
end
|
end
|
||||||
|
|
||||||
check_missing_site_settings
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def upload(file, path, options={})
|
def upload(file, path, options={})
|
||||||
|
@ -66,10 +66,13 @@ class S3Helper
|
||||||
path
|
path
|
||||||
end
|
end
|
||||||
|
|
||||||
def s3_options
|
def default_s3_options
|
||||||
opts = { region: SiteSetting.s3_region }
|
opts = { region: SiteSetting.s3_region }
|
||||||
|
|
||||||
unless SiteSetting.s3_use_iam_profile
|
unless SiteSetting.s3_use_iam_profile
|
||||||
|
raise Discourse::SiteSettingMissing.new("s3_access_key_id") if SiteSetting.s3_access_key_id.blank?
|
||||||
|
raise Discourse::SiteSettingMissing.new("s3_secret_access_key") if SiteSetting.s3_secret_access_key.blank?
|
||||||
|
|
||||||
opts[:access_key_id] = SiteSetting.s3_access_key_id
|
opts[:access_key_id] = SiteSetting.s3_access_key_id
|
||||||
opts[:secret_access_key] = SiteSetting.s3_secret_access_key
|
opts[:secret_access_key] = SiteSetting.s3_secret_access_key
|
||||||
end
|
end
|
||||||
|
@ -78,7 +81,7 @@ class S3Helper
|
||||||
end
|
end
|
||||||
|
|
||||||
def s3_resource
|
def s3_resource
|
||||||
Aws::S3::Resource.new(s3_options)
|
Aws::S3::Resource.new(@s3_options)
|
||||||
end
|
end
|
||||||
|
|
||||||
def s3_bucket
|
def s3_bucket
|
||||||
|
@ -86,11 +89,4 @@ class S3Helper
|
||||||
bucket.create unless bucket.exists?
|
bucket.create unless bucket.exists?
|
||||||
bucket
|
bucket
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_missing_site_settings
|
|
||||||
unless SiteSetting.s3_use_iam_profile
|
|
||||||
raise Discourse::SiteSettingMissing.new("s3_access_key_id") if SiteSetting.s3_access_key_id.blank?
|
|
||||||
raise Discourse::SiteSettingMissing.new("s3_secret_access_key") if SiteSetting.s3_secret_access_key.blank?
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
Reference in a new issue