Turn off attachment previews on large files
ref: https://fizzy.37signals.com/5986089/collections/7/cards/1302
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
#
|
||||
# see https://fizzy.37signals.com/5986089/collections/7/cards/1302
|
||||
#
|
||||
# Large previewable uploads may take longer than the "pin reads" interval. So we pick a small-ish
|
||||
# number and turn off previews for anything larger, at least until we can come up with a permanent
|
||||
# solution.
|
||||
#
|
||||
module ActiveStorageBlobPreviewable
|
||||
MAX_PREVIEWABLE_SIZE = 16.megabytes # this is pretty arbitrary, feel free to adjust
|
||||
|
||||
def previewable?
|
||||
super && self.byte_size <= MAX_PREVIEWABLE_SIZE
|
||||
end
|
||||
end
|
||||
|
||||
ActiveSupport.on_load :active_storage_blob do
|
||||
prepend ::ActiveStorageBlobPreviewable
|
||||
end
|
||||
@@ -0,0 +1,13 @@
|
||||
require "test_helper"
|
||||
|
||||
class ActiveStorageBlobPreviewableTest < ActiveSupport::TestCase
|
||||
test "small files are previewable" do
|
||||
blob = ActiveStorage::Blob.new(filename: "test.mp4", content_type: "video/mp4", byte_size: 1024 * 1024, key: "test", checksum: "abc")
|
||||
assert blob.previewable?
|
||||
end
|
||||
|
||||
test "large files are not previewable" do
|
||||
blob = ActiveStorage::Blob.new(filename: "test.mp4", content_type: "video/mp4", byte_size: ActiveStorageBlobPreviewable::MAX_PREVIEWABLE_SIZE + 1, key: "test", checksum: "abc")
|
||||
assert_not blob.previewable?
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user