2020-09-14 19:32:25 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module UploadsHelpers
|
|
|
|
def setup_s3
|
|
|
|
SiteSetting.enable_s3_uploads = true
|
|
|
|
|
|
|
|
SiteSetting.s3_region = 'us-west-1'
|
|
|
|
SiteSetting.s3_upload_bucket = "s3-upload-bucket"
|
|
|
|
|
|
|
|
SiteSetting.s3_access_key_id = "some key"
|
|
|
|
SiteSetting.s3_secret_access_key = "some secrets3_region key"
|
|
|
|
|
|
|
|
stub_request(:head, "https://#{SiteSetting.s3_upload_bucket}.s3.#{SiteSetting.s3_region}.amazonaws.com/")
|
|
|
|
end
|
|
|
|
|
2022-09-29 07:24:33 +08:00
|
|
|
# TODO (martin) Remove this alias once discourse-chat plugin has been
|
|
|
|
# updated to use secure_uploads instead.
|
2020-11-06 08:33:19 +08:00
|
|
|
def enable_secure_media
|
2022-09-29 07:24:33 +08:00
|
|
|
enable_secure_uploads
|
|
|
|
DiscourseEvent.trigger(:site_setting_changed, :secure_media, false, true)
|
|
|
|
end
|
|
|
|
|
|
|
|
def enable_secure_uploads
|
2020-11-06 08:33:19 +08:00
|
|
|
setup_s3
|
2022-09-29 07:24:33 +08:00
|
|
|
SiteSetting.secure_uploads = true
|
2020-11-06 08:33:19 +08:00
|
|
|
end
|
|
|
|
|
2020-09-14 19:32:25 +08:00
|
|
|
def stub_upload(upload)
|
2021-12-04 06:05:27 +08:00
|
|
|
url = %r{https://#{SiteSetting.s3_upload_bucket}.s3.#{SiteSetting.s3_region}.amazonaws.com/original/\d+X.*#{upload.sha1}.#{upload.extension}\?acl}
|
2020-09-14 19:32:25 +08:00
|
|
|
stub_request(:put, url)
|
|
|
|
end
|
|
|
|
|
|
|
|
def stub_s3_store
|
|
|
|
store = FileStore::S3Store.new
|
|
|
|
client = Aws::S3::Client.new(stub_responses: true)
|
|
|
|
store.s3_helper.stubs(:s3_client).returns(client)
|
|
|
|
Discourse.stubs(:store).returns(store)
|
|
|
|
end
|
|
|
|
end
|