Add optional S3 config/backend for ActiveStorage

This commit is contained in:
Râu Cao 2023-10-19 14:29:47 +02:00
parent be5fe00f20
commit 1056ffd08e
Signed by: raucao
GPG Key ID: 15E65F399D084BA9
5 changed files with 34 additions and 7 deletions

View File

@ -10,6 +10,14 @@ SMTP_DOMAIN=example.com
SMTP_AUTH_METHOD=plain
SMTP_ENABLE_STARTTLS=auto
# S3_ENABLED=true
# S3_ENDPOINT=https://s3.kosmos.org
# S3_REGION=garage
# S3_BUCKET=akkounts-production
# S3_ALIAS_HOST=accounts.s3.kosmos.org
# S3_ACCESS_KEY=123456abcdefg
# S3_SECRET_KEY=123456789123456789123456789
LDAP_HOST=localhost
LDAP_PORT=389
LDAP_ADMIN_PASSWORD=passthebutter

View File

@ -71,6 +71,9 @@ Rails.application.configure do
# Allow requests from any IP
config.web_console.whiny_requests = false
# Store attachments on the local disk (in ./storage)
config.active_storage.service = :local
if ENV["S3_ENABLED"]
config.active_storage.service = :s3
else
config.active_storage.service = :local
end
end

View File

@ -110,9 +110,11 @@ Rails.application.configure do
# Set this to true and configure the email server for immediate delivery to raise delivery errors.
config.action_mailer.raise_delivery_errors = true
# TODO make configurable
# Store attachments in S3-compatible back-end
config.active_storage.service = :local
if ENV["S3_ENABLED"]
config.active_storage.service = :s3
else
config.active_storage.service = :local
end
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
# the I18n.default_locale when a translation cannot be found).

View File

@ -52,6 +52,10 @@ Rails.application.configure do
config.active_job.queue_adapter = :test
# Store attachments on the local disk (in ./tmp)
config.active_storage.service = :test
if ENV["S3_ENABLED"]
config.active_storage.service = :s3
else
# Store attachments on the local disk (in ./tmp)
config.active_storage.service = :test
end
end

View File

@ -5,3 +5,13 @@ local:
test:
service: Disk
root: <%= Rails.root.join("tmp/storage") %>
<% if ENV["S3_ENABLED"] %>
s3:
service: S3
endpoint: ENV["S3_ENDPOINT"]
region: ENV["S3_REGION"]
bucket: ENV["S3_BUCKET"]
access_key_id: ENV["S3_ACCESS_KEY"]
secret_access_key: ENV["S3_SECRET_KEY"]
<% end %>