Class: TpCommon::FileStorage::Uploaders::Private
- Defined in:
- lib/tp_common/file_storage/uploaders/private.rb
Overview
Upload a content to file storage used for private purpose like user import. export files Use in case content to upload is inside of system/server
Constant Summary
Constants inherited from Base
Instance Method Summary collapse
-
#upload(file_key, content, content_type) ⇒ Object
Upload content to file_key.
-
#url(file_key, link_ttl = 1.week.from_now) ⇒ Object
Get url from key of file #upload above to provide to outside.
Methods inherited from Base
Constructor Details
This class inherits a constructor from TpCommon::FileStorage::Base
Instance Method Details
#upload(file_key, content, content_type) ⇒ Object
Upload content to file_key
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/tp_common/file_storage/uploaders/private.rb', line 10 def upload(file_key, content, content_type) retry_count = 0 begin directory.files.create( 'key' => mask_key(file_key), "body" => content, 'public' => false, 'Content-Type' => content_type, "Content-Disposition" => "attachment;filename=\"#{mask_key(file_key)}\"" ) rescue StandardError => e retry_count += 1 retry if retry_count < MAX_RETRIES raise e end mask_key(file_key) end |
#url(file_key, link_ttl = 1.week.from_now) ⇒ Object
Get url from key of file #upload above to provide to outside.
To get file content to use inside system, please use Downloaders::Private instead
As private file, link has a ttl, default 1 week.
33 34 35 |
# File 'lib/tp_common/file_storage/uploaders/private.rb', line 33 def url(file_key, link_ttl = 1.week.from_now) directory.files.get_https_url(mask_key(file_key), link_ttl) end |