* Fix #201: Account archive download * Export actor and private key in the archive * Optimize BackupService - Add conversation to cached associations of status, because somehow it was forgotten and is source of N+1 queries - Explicitly call GC between batches of records being fetched (Model class allocations are the worst offender) - Stream media files into the tar in 1MB chunks (Do not allocate media file (up to 8MB) as string into memory) - Use #bytesize instead of #size to calculate file size for JSON (Fix FileOverflow error) - Segment media into subfolders by status ID because apparently GIF-to-MP4 media are all named "media.mp4" for some reason * Keep uniquely generated filename in Paperclip::GifTranscoder * Ensure dumped files do not overwrite each other by maintaing directory partitions * Give tar archives a good name * Add scheduler to remove week-old backups * Fix code style issue
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| - content_for :page_title do
 | |
|   = t('settings.export')
 | |
| 
 | |
| .table-wrapper
 | |
|   %table.table
 | |
|     %tbody
 | |
|       %tr
 | |
|         %th= t('exports.storage')
 | |
|         %td= number_to_human_size @export.total_storage
 | |
|         %td
 | |
|       %tr
 | |
|         %th= t('exports.follows')
 | |
|         %td= @export.total_follows
 | |
|         %td= table_link_to 'download', t('exports.csv'), settings_exports_follows_path(format: :csv)
 | |
|       %tr
 | |
|         %th= t('exports.blocks')
 | |
|         %td= @export.total_blocks
 | |
|         %td= table_link_to 'download', t('exports.csv'), settings_exports_blocks_path(format: :csv)
 | |
|       %tr
 | |
|         %th= t('exports.mutes')
 | |
|         %td= @export.total_mutes
 | |
|         %td= table_link_to 'download', t('exports.csv'), settings_exports_mutes_path(format: :csv)
 | |
| 
 | |
| %p.muted-hint= t('exports.archive_takeout.hint_html')
 | |
| 
 | |
| - if policy(:backup).create?
 | |
|   %p= link_to t('exports.archive_takeout.request'), settings_export_path, class: 'button', method: :post
 | |
| 
 | |
| - unless @backups.empty?
 | |
|   .table-wrapper
 | |
|     %table.table
 | |
|       %thead
 | |
|         %tr
 | |
|           %th= t('exports.archive_takeout.date')
 | |
|           %th= t('exports.archive_takeout.size')
 | |
|           %th
 | |
|       %tbody
 | |
|         - @backups.each do |backup|
 | |
|           %tr
 | |
|             %td= l backup.created_at
 | |
|             - if backup.processed?
 | |
|               %td= number_to_human_size backup.dump_file_size
 | |
|               %td= table_link_to 'download', t('exports.archive_takeout.download'), backup.dump.url
 | |
|             - else
 | |
|               %td{ colspan: 2 }= t('exports.archive_takeout.in_progress')
 |