diff --git a/app/controllers/media_controller.rb b/app/controllers/media_controller.rb index 62ce9a06..4d5c8fde 100644 --- a/app/controllers/media_controller.rb +++ b/app/controllers/media_controller.rb @@ -31,7 +31,7 @@ def download protected def redirect_to_s3? - AssetManager.redirect_all_asset_requests_to_s3 || params[:redirect_to_s3].present? + asset.uploaded_to_s3? end def stream_from_s3? diff --git a/app/models/asset.rb b/app/models/asset.rb index 1bcc801f..34278bc7 100644 --- a/app/models/asset.rb +++ b/app/models/asset.rb @@ -14,6 +14,8 @@ class Asset field :access_limited, type: Boolean, default: false field :organisation_slug, type: String + field :uploaded_to_s3, type: Boolean, default: false + validates :file, presence: true validates :organisation_slug, presence: true, if: :access_limited? @@ -72,6 +74,7 @@ def accessible_by?(user) def save_to_cloud_storage Services.cloud_storage.save(self, cloud_storage_options) + update_attribute(:uploaded_to_s3, true) rescue => e Airbrake.notify_or_ignore(e, params: { id: self.id, filename: self.filename }) raise