filestack 2.8.1 → 2.9.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
24
24
 
25
25
  spec.add_dependency "typhoeus", "~> 1.1"
26
26
  spec.add_dependency "parallel", "~> 1.11", ">= 1.11.2"
27
- spec.add_dependency "mimemagic", "~> 0.3.2"
27
+ spec.add_dependency "mini_mime", "~> 1.0"
28
28
  spec.add_dependency "progress_bar"
29
29
 
30
30
  spec.add_development_dependency "bundler", "~> 1.7"
@@ -1,7 +1,7 @@
1
1
  require 'filestack/config'
2
2
  require 'filestack/utils/utils'
3
3
  require 'filestack/utils/multipart_upload_utils'
4
- require 'mimemagic'
4
+ require 'mini_mime'
5
5
  require 'json'
6
6
 
7
7
  # Module is mixin for common functionalities that all Filestack
@@ -58,7 +58,7 @@ module FilestackCommon
58
58
  return 'Overwrite requires security' if security.nil?
59
59
 
60
60
  file = File.open(filepath, 'r')
61
- mimetype = MimeMagic.by_magic(file)
61
+ mimetype = MiniMime.lookup_by_filename(file).content_type
62
62
  content = file.read
63
63
 
64
64
  signature = security.signature
@@ -10,7 +10,7 @@ require 'filestack/mixins/filestack_common'
10
10
  class FilestackFilelink
11
11
  include FilestackCommon
12
12
  include UploadUtils
13
- attr_reader :handle, :apikey, :security
13
+ attr_reader :handle, :apikey, :security, :upload_response
14
14
 
15
15
  # Initialize FilestackFilelink
16
16
  #
@@ -18,10 +18,11 @@ class FilestackFilelink
18
18
  # @param [String] apikey Your Filestack API Key (optional)
19
19
  # @param [FilestackSecurity] security Filestack security object, if
20
20
  # security is enabled.
21
- def initialize(handle, apikey: nil, security: nil)
21
+ def initialize(handle, apikey: nil, security: nil, upload_response: nil)
22
22
  @handle = handle
23
23
  @apikey = apikey
24
24
  @security = security
25
+ @upload_response = upload_response
25
26
  end
26
27
 
27
28
  # Get content of filelink
@@ -42,7 +42,7 @@ class FilestackClient
42
42
  multipart_upload(@apikey, filepath, io, @security, options, timeout, storage, intelligent)
43
43
  end
44
44
 
45
- FilestackFilelink.new(response['handle'], security: @security, apikey: @apikey)
45
+ FilestackFilelink.new(response['handle'], security: @security, apikey: @apikey, upload_response: response)
46
46
  end
47
47
  # Transform an external URL
48
48
  #
@@ -1,5 +1,5 @@
1
1
  module Filestack
2
2
  module Ruby
3
- VERSION = '2.8.1'.freeze
3
+ VERSION = '2.9.6'.freeze
4
4
  end
5
5
  end
@@ -1,7 +1,7 @@
1
1
  require 'base64'
2
2
  require 'timeout'
3
3
  require 'digest'
4
- require 'mimemagic'
4
+ require 'mini_mime'
5
5
  require 'json'
6
6
  require 'parallel'
7
7
  require 'typhoeus'
@@ -16,7 +16,7 @@ module MultipartUploadUtils
16
16
 
17
17
  def get_file_attributes(file, options = {})
18
18
  filename = options[:filename] || File.basename(file)
19
- mimetype = options[:mimetype] || MimeMagic.by_magic(File.open(file)) || FilestackConfig::DEFAULT_UPLOAD_MIMETYPE
19
+ mimetype = options[:mimetype] || get_mimetype_from_file(file) || FilestackConfig::DEFAULT_UPLOAD_MIMETYPE
20
20
  filesize = File.size(file)
21
21
 
22
22
  [filename, filesize, mimetype.to_s]
@@ -280,4 +280,12 @@ module MultipartUploadUtils
280
280
  end
281
281
  JSON.parse(response_complete.body)
282
282
  end
283
+
284
+ private
285
+
286
+ def get_mimetype_from_file(file)
287
+ file_info = MiniMime.lookup_by_filename(File.open(file))
288
+
289
+ file_info ? file_info.content_type : nil
290
+ end
283
291
  end
@@ -1,7 +1,7 @@
1
1
  require 'base64'
2
2
  require 'digest'
3
3
  require 'fiber'
4
- require 'mimemagic'
4
+ require 'mini_mime'
5
5
  require 'json'
6
6
  require 'typhoeus'
7
7
 
@@ -58,7 +58,7 @@ module UploadUtils
58
58
  FilestackConfig::HEADERS
59
59
  end
60
60
  Typhoeus.public_send(
61
- action, url, params: parameters, headers: headers
61
+ action, URI.encode(url), params: parameters, headers: headers
62
62
  )
63
63
  end
64
64
 
@@ -102,8 +102,7 @@ module UploadUtils
102
102
  if response.code == 200
103
103
  begin
104
104
  response_body = JSON.parse(response.body)
105
- handle = response_body['url'].split('/').last
106
- return { 'handle' => handle }
105
+ return response_body
107
106
  rescue
108
107
  raise response.body
109
108
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: filestack
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.1
4
+ version: 2.9.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Filestack
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-02 00:00:00.000000000 Z
11
+ date: 2021-10-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus
@@ -45,19 +45,19 @@ dependencies:
45
45
  - !ruby/object:Gem::Version
46
46
  version: 1.11.2
47
47
  - !ruby/object:Gem::Dependency
48
- name: mimemagic
48
+ name: mini_mime
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: 0.3.2
53
+ version: '1.0'
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: 0.3.2
60
+ version: '1.0'
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: progress_bar
63
63
  requirement: !ruby/object:Gem::Requirement