diff options
author | George Claghorn <george@basecamp.com> | 2018-05-16 22:12:31 -0400 |
---|---|---|
committer | George Claghorn <george@basecamp.com> | 2018-05-16 22:12:31 -0400 |
commit | ee21b7c2eb64def8f00887a9fafbd77b85f464f1 (patch) | |
tree | f7aae9cbf8ed6dd0921e9cf22ef14e1da7a3273f /activestorage/app/models/active_storage/blob.rb | |
parent | bfe4248c78ce6e93ebba8c7b9ada1c68cd79bb85 (diff) | |
download | rails-ee21b7c2eb64def8f00887a9fafbd77b85f464f1.tar.gz rails-ee21b7c2eb64def8f00887a9fafbd77b85f464f1.tar.bz2 rails-ee21b7c2eb64def8f00887a9fafbd77b85f464f1.zip |
Add ActiveStorage::Blob#open
[David Robertson & George Claghorn]
Diffstat (limited to 'activestorage/app/models/active_storage/blob.rb')
-rw-r--r-- | activestorage/app/models/active_storage/blob.rb | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/activestorage/app/models/active_storage/blob.rb b/activestorage/app/models/active_storage/blob.rb index b8b3b62f22..9bf0766843 100644 --- a/activestorage/app/models/active_storage/blob.rb +++ b/activestorage/app/models/active_storage/blob.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require "active_storage/downloader" + # A blob is a record that contains the metadata about a file and a key for where that file resides on the service. # Blobs can be created in two ways: # @@ -164,6 +166,11 @@ class ActiveStorage::Blob < ActiveRecord::Base service.download key, &block end + # Downloads the blob to a tempfile on disk. Yields the tempfile. + def open(&block) + ActiveStorage::Downloader.new(self).download_blob_to_tempfile(&block) + end + # Deletes the file on the service that's associated with this blob. This should only be done if the blob is going to be # deleted as well or you will essentially have a dead reference. It's recommended to use the +#purge+ and +#purge_later+ |