Fix user archive takeout when using OpenStack Swift or S3 providers with no ACL support (#24200)
This commit is contained in:
		
							parent
							
								
									a159e8e5e1
								
							
						
					
					
						commit
						af57bcd3cf
					
				
					 3 changed files with 7 additions and 2 deletions
				
			
		| 
						 | 
					@ -13,7 +13,11 @@ class BackupsController < ApplicationController
 | 
				
			||||||
    when :s3
 | 
					    when :s3
 | 
				
			||||||
      redirect_to @backup.dump.expiring_url(10)
 | 
					      redirect_to @backup.dump.expiring_url(10)
 | 
				
			||||||
    when :fog
 | 
					    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
 | 
					    when :filesystem
 | 
				
			||||||
      redirect_to full_asset_url(@backup.dump.url)
 | 
					      redirect_to full_asset_url(@backup.dump.url)
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,6 +18,6 @@
 | 
				
			||||||
class Backup < ApplicationRecord
 | 
					class Backup < ApplicationRecord
 | 
				
			||||||
  belongs_to :user, inverse_of: :backups
 | 
					  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/
 | 
					  validates_attachment_content_type :dump, content_type: /\Aapplication/
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -130,6 +130,7 @@ elsif ENV['SWIFT_ENABLED'] == 'true'
 | 
				
			||||||
      openstack_domain_name: ENV.fetch('SWIFT_DOMAIN_NAME') { 'default' },
 | 
					      openstack_domain_name: ENV.fetch('SWIFT_DOMAIN_NAME') { 'default' },
 | 
				
			||||||
      openstack_region: ENV['SWIFT_REGION'],
 | 
					      openstack_region: ENV['SWIFT_REGION'],
 | 
				
			||||||
      openstack_cache_ttl: ENV.fetch('SWIFT_CACHE_TTL') { 60 },
 | 
					      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' },
 | 
					    fog_file: { 'Cache-Control' => 'public, max-age=315576000, immutable' },
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue