~cytrogen/masto-fe

e084b5b82da703dac3ade7480286e847c5c1c2cd — Claire 3 years ago ddb769f
Fix user archive takeout when using OpenStack Swift or S3 providers with no ACL support (#24200)

M app/controllers/backups_controller.rb => app/controllers/backups_controller.rb +5 -1
@@ 13,7 13,11 @@ class BackupsController < ApplicationController
    when :s3
      redirect_to @backup.dump.expiring_url(10)
    when :fog
      redirect_to @backup.dump.expiring_url(Time.now.utc + 10)
      if Paperclip::Attachment.default_options.dig(:storage, :fog_credentials, :openstack_temp_url_key).present?
        redirect_to @backup.dump.expiring_url(Time.now.utc + 10)
      else
        redirect_to full_asset_url(@backup.dump.url)
      end
    when :filesystem
      redirect_to full_asset_url(@backup.dump.url)
    end

M app/models/backup.rb => app/models/backup.rb +1 -1
@@ 18,6 18,6 @@
class Backup < ApplicationRecord
  belongs_to :user, inverse_of: :backups

  has_attached_file :dump, s3_permissions: 'private'
  has_attached_file :dump, s3_permissions: ->(*) { ENV['S3_PERMISSION'] == '' ? nil : 'private' }
  validates_attachment_content_type :dump, content_type: /\Aapplication/
end

M config/initializers/paperclip.rb => config/initializers/paperclip.rb +1 -0
@@ 130,6 130,7 @@ elsif ENV['SWIFT_ENABLED'] == 'true'
      openstack_domain_name: ENV.fetch('SWIFT_DOMAIN_NAME') { 'default' },
      openstack_region: ENV['SWIFT_REGION'],
      openstack_cache_ttl: ENV.fetch('SWIFT_CACHE_TTL') { 60 },
      openstack_temp_url_key: ENV['SWIFT_TEMP_URL_KEY'],
    },
    
    fog_file: { 'Cache-Control' => 'public, max-age=315576000, immutable' },