forked from discourse/discourse
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuploads_helpers.rb
36 lines (29 loc) · 975 Bytes
/
uploads_helpers.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 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
def enable_secure_uploads
setup_s3
SiteSetting.secure_uploads = true
end
def stub_upload(upload)
url =
%r{https://#{SiteSetting.s3_upload_bucket}.s3.#{SiteSetting.s3_region}.amazonaws.com/original/\d+X.*#{upload.sha1}.#{upload.extension}\?acl}
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