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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +21 -0
- data/README.md +23 -0
- data/VERSION +1 -1
- data/docs/FilestackCommon.html +1 -1
- data/docs/MultipartUploadUtils.html +491 -491
- data/filestack-ruby.gemspec +1 -1
- data/lib/filestack/mixins/filestack_common.rb +2 -2
- data/lib/filestack/models/filelink.rb +3 -2
- data/lib/filestack/models/filestack_client.rb +1 -1
- data/lib/filestack/ruby/version.rb +1 -1
- data/lib/filestack/utils/multipart_upload_utils.rb +10 -2
- data/lib/filestack/utils/utils.rb +3 -4
- metadata +5 -5
data/filestack-ruby.gemspec
CHANGED
@@ -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 "
|
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 '
|
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 =
|
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,7 +1,7 @@
|
|
1
1
|
require 'base64'
|
2
2
|
require 'timeout'
|
3
3
|
require 'digest'
|
4
|
-
require '
|
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] ||
|
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 '
|
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
|
-
|
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.
|
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:
|
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:
|
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
|
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
|
60
|
+
version: '1.0'
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: progress_bar
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|