Class: FilestackClient
- Inherits:
-
Object
- Object
- FilestackClient
- Includes:
- MultipartUploadUtils, UploadUtils
- Defined in:
- lib/filestack/models/filestack_client.rb
Overview
The Filestack FilestackClient class acts as a hub for all Filestack actions that do not require a file handle, including uploading files (both local and external), initiating an external transformation, and other tasks
Instance Attribute Summary collapse
-
#apikey ⇒ Object
readonly
Returns the value of attribute apikey.
-
#security ⇒ Object
readonly
Returns the value of attribute security.
Instance Method Summary collapse
-
#initialize(apikey, security: nil) ⇒ FilestackClient
constructor
Initialize FilestackClient.
-
#transform_external(external_url) ⇒ Filestack::Transform
Transform an external URL.
-
#upload(filepath: nil, external_url: nil, multipart: true, options: nil, storage: 's3', intelligent: false, timeout: 60) ⇒ Object
Upload a local file or external url return [Filestack::FilestackFilelink].
- #zip(destination, files) ⇒ Object
Methods included from UploadUtils
#get_url, #make_call, #send_upload
Methods included from MultipartUploadUtils
#create_upload_jobs, #get_file_info, #multipart_complete, #multipart_start, #multipart_upload, #run_uploads, #upload_chunk
Constructor Details
#initialize(apikey, security: nil) ⇒ FilestackClient
Initialize FilestackClient
21 22 23 24 |
# File 'lib/filestack/models/filestack_client.rb', line 21 def initialize(apikey, security: nil) @apikey = apikey @security = security end |
Instance Attribute Details
#apikey ⇒ Object (readonly)
Returns the value of attribute apikey.
14 15 16 |
# File 'lib/filestack/models/filestack_client.rb', line 14 def apikey @apikey end |
#security ⇒ Object (readonly)
Returns the value of attribute security.
14 15 16 |
# File 'lib/filestack/models/filestack_client.rb', line 14 def security @security end |
Instance Method Details
#transform_external(external_url) ⇒ Filestack::Transform
Transform an external URL
57 58 59 |
# File 'lib/filestack/models/filestack_client.rb', line 57 def transform_external(external_url) Transform.new(external_url: external_url, security: @security, apikey: @apikey) end |
#upload(filepath: nil, external_url: nil, multipart: true, options: nil, storage: 's3', intelligent: false, timeout: 60) ⇒ Object
Upload a local file or external url return [Filestack::FilestackFilelink]
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/filestack/models/filestack_client.rb', line 34 def upload(filepath: nil, external_url: nil, multipart: true, options: nil, storage: 's3', intelligent: false, timeout: 60) if filepath && external_url return 'You cannot upload a URL and file at the same time' end response = if filepath && multipart multipart_upload(@apikey, filepath, @security, , timeout, intelligent: intelligent) else send_upload( @apikey, filepath: filepath, external_url: external_url, options: , security: @security, storage: storage ) end FilestackFilelink.new(response['handle'], security: @security, apikey: @apikey) end |
#zip(destination, files) ⇒ Object
61 62 63 64 65 66 67 |
# File 'lib/filestack/models/filestack_client.rb', line 61 def zip(destination, files) encoded_files = JSON.generate(files).gsub('"', '') zip_url = "#{FilestackConfig::CDN_URL}/#{@apikey}/zip/#{encoded_files}" escaped_zip_url = zip_url.gsub("[","%5B").gsub("]","%5D") response = UploadUtils.make_call(escaped_zip_url, 'get') File.write(destination, response.body) end |