Set a specific S3 expiration time so that files can be cached
This commit is contained in:
		| @@ -5,7 +5,7 @@ module ApplicationHelper | ||||
|     current_page?(path) ? 'active' : '' | ||||
|   end | ||||
|  | ||||
|   def id_paginate(path, per_page, collection) | ||||
|   	# todo | ||||
|   def s3_expiry | ||||
|     Time.zone.now.beginning_of_day.since 25.hours | ||||
|   end | ||||
| end | ||||
|   | ||||
| @@ -6,7 +6,7 @@ module StreamEntriesHelper | ||||
|   end | ||||
|  | ||||
|   def avatar_for_status_url(status) | ||||
|     status.reblog? ? status.reblog.account.avatar.expiring_url(3600, :original) : status.account.avatar.expiring_url(3600, :original) | ||||
|     status.reblog? ? status.reblog.account.avatar.expiring_url(s3_expiry, :original) : status.account.avatar.expiring_url(s3_expiry, :original) | ||||
|   end | ||||
|  | ||||
|   def entry_classes(status, is_predecessor, is_successor, include_threads) | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| .account-grid-card | ||||
|   .account-grid-card__header | ||||
|     .avatar= image_tag account.avatar.expiring_url(3600, :original) | ||||
|     .avatar= image_tag account.avatar.expiring_url(s3_expiry, :original) | ||||
|     .name | ||||
|       = link_to TagManager.instance.url_for(account) do | ||||
|         %span.display_name= display_name(account) | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| .card{ style: "background-image: url(#{@account.header.expiring_url(3600, :original)})" } | ||||
| .card{ style: "background-image: url(#{@account.header.expiring_url(s3_expiry, :original)})" } | ||||
|   - if user_signed_in? && current_account.id != @account.id | ||||
|     .controls | ||||
|       - if current_account.following?(@account) | ||||
| @@ -6,7 +6,7 @@ | ||||
|       - else | ||||
|         = link_to t('accounts.follow'), follow_account_path(@account), data: { method: :post }, class: 'button' | ||||
|  | ||||
|   .avatar= image_tag @account.avatar.expiring_url(3600, :original) | ||||
|   .avatar= image_tag @account.avatar.expiring_url(s3_expiry, :original) | ||||
|   %h1.name | ||||
|     = display_name(@account) | ||||
|     %small= "@#{@account.username}" | ||||
|   | ||||
| @@ -6,7 +6,7 @@ Nokogiri::XML::Builder.new do |xml| | ||||
|     title      xml, @account.display_name | ||||
|     subtitle   xml, @account.note | ||||
|     updated_at xml, stream_updated_at | ||||
|     logo       xml, full_asset_url(@account.avatar.expiring_url(3600, :original)) | ||||
|     logo       xml, full_asset_url(@account.avatar.expiring_url(s3_expiry, :original)) | ||||
|  | ||||
|     author(xml) do | ||||
|       include_author xml, @account | ||||
|   | ||||
| @@ -4,8 +4,8 @@ attributes :id, :username, :acct, :display_name | ||||
|  | ||||
| node(:note)            { |account| Formatter.instance.simplified_format(account) } | ||||
| node(:url)             { |account| TagManager.instance.url_for(account) } | ||||
| node(:avatar)          { |account| full_asset_url(account.avatar.expiring_url(3600, :original)) } | ||||
| node(:header)          { |account| full_asset_url(account.header.expiring_url(3600, :original)) } | ||||
| node(:avatar)          { |account| full_asset_url(account.avatar.expiring_url(s3_expiry, :original)) } | ||||
| node(:header)          { |account| full_asset_url(account.header.expiring_url(s3_expiry, :original)) } | ||||
| node(:followers_count) { |account| defined?(@followers_counts_map) ? (@followers_counts_map[account.id] || 0) : (account.try(:followers_count) || account.followers.count) } | ||||
| node(:following_count) { |account| defined?(@following_counts_map) ? (@following_counts_map[account.id] || 0) : (account.try(:following_count) || account.following.count) } | ||||
| node(:statuses_count)  { |account| defined?(@statuses_counts_map)  ? (@statuses_counts_map[account.id]  || 0) : (account.try(:statuses_count)  || account.statuses.count) } | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| object @media | ||||
| attribute :id, :type | ||||
| node(:url) { |media| full_asset_url(media.file.expiring_url(3600, :original)) } | ||||
| node(:preview_url) { |media| full_asset_url(media.file.expiring_url(3600, :small)) } | ||||
| node(:url) { |media| full_asset_url(media.file.expiring_url(s3_expiry, :original)) } | ||||
| node(:preview_url) { |media| full_asset_url(media.file.expiring_url(s3_expiry, :small)) } | ||||
| node(:text_url) { |media| medium_url(media) } | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| attributes :id, :remote_url, :type | ||||
|  | ||||
| node(:url)         { |media| full_asset_url(media.file.expiring_url(3600, :original)) } | ||||
| node(:preview_url) { |media| full_asset_url(media.file.expiring_url(3600, :small)) } | ||||
| node(:url)         { |media| full_asset_url(media.file.expiring_url(s3_expiry, :original)) } | ||||
| node(:preview_url) { |media| full_asset_url(media.file.expiring_url(s3_expiry, :small)) } | ||||
|   | ||||
| @@ -34,7 +34,7 @@ | ||||
|       - if (status.reblog? ? status.reblog : status).media_attachments.size > 0 | ||||
|         %ul.media-attachments | ||||
|           - (status.reblog? ? status.reblog : status).media_attachments.each do |media| | ||||
|             %li.transparent-background= link_to '', media.file.expiring_url(3600, :original), style: "background-image: url(#{media.file.expiring_url(3600, :small)})", target: '_blank' | ||||
|             %li.transparent-background= link_to '', media.file.expiring_url(s3_expiry, :original), style: "background-image: url(#{media.file.expiring_url(s3_expiry, :small)})", target: '_blank' | ||||
|  | ||||
| - if include_threads | ||||
|   = render partial: 'status', collection: @descendants, as: :status, locals: { is_successor: true } | ||||
|   | ||||
| @@ -7,7 +7,7 @@ | ||||
|   %meta{ name: 'og:title', content: "#{@account.username} on #{Rails.configuration.x.local_domain}" }/ | ||||
|   %meta{ name: 'og:article:author', content: @account.username }/ | ||||
|   %meta{ name: 'og:description', content: @stream_entry.activity.content }/ | ||||
|   %meta{ name: 'og:image', content: @stream_entry.activity.is_a?(Status) && @stream_entry.activity.media_attachments.size > 0 ? full_asset_url(@stream_entry.activity.media_attachments.first.file.expiring_url(3600, :small)) : full_asset_url(@account.avatar.expiring_url(3600, :original)) }/ | ||||
|   %meta{ name: 'og:image', content: @stream_entry.activity.is_a?(Status) && @stream_entry.activity.media_attachments.size > 0 ? full_asset_url(@stream_entry.activity.media_attachments.first.file.expiring_url(s3_expiry, :small)) : full_asset_url(@account.avatar.expiring_url(s3_expiry, :original)) }/ | ||||
|  | ||||
| .activity-stream.activity-stream-headless | ||||
|   = render partial: @type, locals: { @type.to_sym => @stream_entry.activity, include_threads: true } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user