diff options
author | George Claghorn <george@basecamp.com> | 2018-04-29 07:01:44 -0400 |
---|---|---|
committer | George Claghorn <george@basecamp.com> | 2018-04-29 07:07:59 -0400 |
commit | 5f2ee4c0bb790480a7032d1779052be2e1e46808 (patch) | |
tree | 060ff5db306afa03df2dee204fa3067726049401 | |
parent | 8781b03b7ef4897a679f25220e73dce02bc43552 (diff) | |
download | rails-5f2ee4c0bb790480a7032d1779052be2e1e46808.tar.gz rails-5f2ee4c0bb790480a7032d1779052be2e1e46808.tar.bz2 rails-5f2ee4c0bb790480a7032d1779052be2e1e46808.zip |
Stream blobs from disk in 5 MB chunks
Match other services, which all use a 5 MB chunk size.
-rw-r--r-- | activestorage/lib/active_storage/service/disk_service.rb | 2 | ||||
-rw-r--r-- | activestorage/test/models/blob_test.rb | 6 |
2 files changed, 4 insertions, 4 deletions
diff --git a/activestorage/lib/active_storage/service/disk_service.rb b/activestorage/lib/active_storage/service/disk_service.rb index 5b652fe74e..b1b6f1ddcf 100644 --- a/activestorage/lib/active_storage/service/disk_service.rb +++ b/activestorage/lib/active_storage/service/disk_service.rb @@ -26,7 +26,7 @@ module ActiveStorage if block_given? instrument :streaming_download, key: key do File.open(path_for(key), "rb") do |file| - while data = file.read(64.kilobytes) + while data = file.read(5.megabytes) yield data end end diff --git a/activestorage/test/models/blob_test.rb b/activestorage/test/models/blob_test.rb index fead17d33a..daa01015f7 100644 --- a/activestorage/test/models/blob_test.rb +++ b/activestorage/test/models/blob_test.rb @@ -62,7 +62,7 @@ class ActiveStorage::BlobTest < ActiveSupport::TestCase end test "download yields chunks" do - blob = create_blob data: "a" * 75.kilobytes + blob = create_blob data: "a" * 5.0625.megabytes chunks = [] blob.download do |chunk| @@ -70,8 +70,8 @@ class ActiveStorage::BlobTest < ActiveSupport::TestCase end assert_equal 2, chunks.size - assert_equal "a" * 64.kilobytes, chunks.first - assert_equal "a" * 11.kilobytes, chunks.second + assert_equal "a" * 5.megabytes, chunks.first + assert_equal "a" * 64.kilobytes, chunks.second end test "urls expiring in 5 minutes" do |