s3_media_server_api 0.1.0 → 0.1.0.2
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/lib/s3_media_server_api/cache.rb +9 -0
- data/lib/s3_media_server_api/config.rb +30 -16
- data/lib/s3_media_server_api/media/common_media_api.rb +12 -5
- data/lib/s3_media_server_api/media/document.rb +1 -1
- data/lib/s3_media_server_api/media/image.rb +2 -2
- data/lib/s3_media_server_api/media/video.rb +7 -7
- data/lib/s3_media_server_api/uploader.rb +1 -1
- data/lib/s3_media_server_api/version.rb +1 -1
- data/lib/s3_media_server_api.rb +1 -13
- data/s3_media_server_api-0.1.0.gem +0 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 38ba4e51274bac69d7af53286c338b5a216f9240
|
4
|
+
data.tar.gz: 13dcaede9a9a023111ba792322ab8cab7d2b882c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f77b81060a59a2a27aae2ae8c76a1b80549e558ab830ce1742599ab587a66b9a63a4360de7ae23cd7bac31215b48f25bac65d08d14f9dd6764ab2d3bff99550b
|
7
|
+
data.tar.gz: fcbd78d7989a66cbf90b35ac90e20b2b3a565132135066791a1d627697d4189166b10e6ded29a22ed4c6f575eca12b16d417ae67e0c3b3f223f63b6e9a2dd606
|
@@ -2,25 +2,39 @@ require 'yaml'
|
|
2
2
|
|
3
3
|
module S3MediaServerApi
|
4
4
|
class ConfigError < S3MediaServerApiError; end
|
5
|
-
#
|
6
|
-
# By default 4 threads is used for file uploading. To change
|
7
|
-
# this value you can create config/s3_media_server_api.yml and specify
|
8
|
-
# upload_thread_count
|
9
|
-
#
|
10
|
-
# Example
|
11
|
-
# prosuction:
|
12
|
-
# upload_thread_count: 10
|
13
|
-
#
|
14
5
|
class Config
|
15
|
-
|
6
|
+
class << self
|
7
|
+
def add_config(name, default_value = nil)
|
16
8
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
9
|
+
define_singleton_method "#{name}=".to_sym do |value|
|
10
|
+
instance_variable_set("@#{name}".to_sym,value)
|
11
|
+
end
|
12
|
+
|
13
|
+
define_singleton_method "#{name}".to_sym do
|
14
|
+
value = instance_variable_get(:"@#{name}")
|
15
|
+
raise ConfigError.new("Key: '#{name}' cannot be nil.") if @required_keys.include?(name.to_sym) && value.nil?
|
16
|
+
value
|
17
|
+
end
|
18
|
+
|
19
|
+
self.send("#{name}=".to_sym, default_value)
|
20
|
+
end
|
21
|
+
|
22
|
+
def required(*args)
|
23
|
+
@required_keys = args
|
24
|
+
end
|
25
|
+
|
26
|
+
def configure
|
27
|
+
yield self
|
28
|
+
@required_keys.each do |key|
|
29
|
+
raise ConfigError.new("Key: #{key} cannot be nil.") if instance_variable_get(:"@#{key}").nil?
|
30
|
+
end
|
22
31
|
end
|
23
|
-
@upload_thread_count ||= 4
|
24
32
|
end
|
33
|
+
|
34
|
+
add_config :mocked
|
35
|
+
add_config :cache_class, S3MediaServerApi::Cache
|
36
|
+
add_config :upload_thread_count, 4
|
37
|
+
|
38
|
+
required :mocked, :cache_class, :upload_thread_count
|
25
39
|
end
|
26
40
|
end
|
@@ -14,21 +14,25 @@ module S3MediaServerApi
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def uuid
|
17
|
-
@params[:uuid]
|
17
|
+
@params[:uuid] if exist?
|
18
18
|
end
|
19
19
|
|
20
20
|
def name
|
21
|
-
@params[:name]
|
21
|
+
@params[:name] if exist?
|
22
22
|
end
|
23
23
|
|
24
24
|
def size
|
25
|
-
@params[:size]
|
25
|
+
@params[:size] if exist?
|
26
26
|
end
|
27
27
|
|
28
|
-
def as_hash
|
28
|
+
def as_hash if exist?
|
29
29
|
@params
|
30
30
|
end
|
31
31
|
|
32
|
+
def exist?
|
33
|
+
!@params.nil?
|
34
|
+
end
|
35
|
+
|
32
36
|
class << self
|
33
37
|
#
|
34
38
|
# creates media file
|
@@ -58,7 +62,10 @@ module S3MediaServerApi
|
|
58
62
|
# returns: response with file information
|
59
63
|
#
|
60
64
|
def resolve(uuid)
|
61
|
-
|
65
|
+
cache_key = "#{media_type}/#{uuid}"
|
66
|
+
Config.cache_class.fetch(cache_key) do
|
67
|
+
AsynkRequest.sync_request(base_path, :resolve, uuid: uuid)
|
68
|
+
end
|
62
69
|
end
|
63
70
|
#
|
64
71
|
# this method should be used to send custom synchronous request to
|
@@ -27,11 +27,11 @@ module S3MediaServerApi
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def source
|
30
|
-
ImageObject.new(@params[:source])
|
30
|
+
ImageObject.new(@params[:source]) if exist?
|
31
31
|
end
|
32
32
|
|
33
33
|
def thumb
|
34
|
-
ImageObject.new(@params[:thumb])
|
34
|
+
ImageObject.new(@params[:thumb]) if exist?
|
35
35
|
end
|
36
36
|
|
37
37
|
class << self
|
@@ -26,31 +26,31 @@ module S3MediaServerApi
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def preview
|
29
|
-
@params[:preview]
|
29
|
+
@params[:preview] if exist?
|
30
30
|
end
|
31
31
|
|
32
32
|
def duration
|
33
|
-
@params[:duration]
|
33
|
+
@params[:duration] if exist?
|
34
34
|
end
|
35
35
|
|
36
36
|
def transcoded
|
37
|
-
@params[:transcoded]
|
37
|
+
@params[:transcoded] if exist?
|
38
38
|
end
|
39
39
|
|
40
40
|
def embed_url
|
41
|
-
@params[:embed_url]
|
41
|
+
@params[:embed_url] if exist?
|
42
42
|
end
|
43
43
|
|
44
44
|
def provider
|
45
|
-
@params[:provider]
|
45
|
+
@params[:provider] if exist?
|
46
46
|
end
|
47
47
|
|
48
48
|
def screenshots
|
49
|
-
@params[:screenshots].map { |screenshot| Image::ImageObject.new(screenshot) }
|
49
|
+
@params[:screenshots].map { |screenshot| Image::ImageObject.new(screenshot) } if exist?
|
50
50
|
end
|
51
51
|
|
52
52
|
def versions
|
53
|
-
@params[:versions].map { |version| Version.new(version) }
|
53
|
+
@params[:versions].map { |version| Version.new(version) } if exist?
|
54
54
|
end
|
55
55
|
|
56
56
|
class << self
|
@@ -29,7 +29,7 @@ module S3MediaServerApi
|
|
29
29
|
aws_file_uuid = file.uuid
|
30
30
|
uploads_count = file.uploads_count
|
31
31
|
parts = compute_parts(file_path, default_part_size)
|
32
|
-
Parallel.each(parts, in_threads: S3MediaServerApi.upload_thread_count) do |part|
|
32
|
+
Parallel.each(parts, in_threads: S3MediaServerApi::Config.upload_thread_count) do |part|
|
33
33
|
signed_upload_url = AwsFile.get_signed_upload_url(aws_file_uuid, part[:part_number])
|
34
34
|
|
35
35
|
raise PartUploadError.new("Part #{part[:part_number]} wasn't uploaded") unless upload_part(signed_upload_url, part[:body].read)
|
data/lib/s3_media_server_api.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require "s3_media_server_api/version"
|
2
2
|
require "s3_media_server_api/error"
|
3
|
+
require "s3_media_server_api/cache"
|
3
4
|
require "s3_media_server_api/config"
|
4
5
|
require "s3_media_server_api/uploader"
|
5
6
|
require "s3_media_server_api/file_part"
|
@@ -8,17 +9,4 @@ require "s3_media_server_api/media"
|
|
8
9
|
require "s3_media_server_api/asynk_request"
|
9
10
|
|
10
11
|
module S3MediaServerApi
|
11
|
-
|
12
|
-
class << self
|
13
|
-
|
14
|
-
def upload_thread_count
|
15
|
-
config.upload_thread_count
|
16
|
-
end
|
17
|
-
|
18
|
-
private
|
19
|
-
|
20
|
-
def config
|
21
|
-
@@config ||= Config.new
|
22
|
-
end
|
23
|
-
end
|
24
12
|
end
|
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: s3_media_server_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0
|
4
|
+
version: 0.1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ayrat Badykov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -122,6 +122,7 @@ files:
|
|
122
122
|
- lib/s3_media_server_api.rb
|
123
123
|
- lib/s3_media_server_api/asynk_request.rb
|
124
124
|
- lib/s3_media_server_api/aws_file.rb
|
125
|
+
- lib/s3_media_server_api/cache.rb
|
125
126
|
- lib/s3_media_server_api/config.rb
|
126
127
|
- lib/s3_media_server_api/error.rb
|
127
128
|
- lib/s3_media_server_api/file_part.rb
|
@@ -133,6 +134,7 @@ files:
|
|
133
134
|
- lib/s3_media_server_api/media/video.rb
|
134
135
|
- lib/s3_media_server_api/uploader.rb
|
135
136
|
- lib/s3_media_server_api/version.rb
|
137
|
+
- s3_media_server_api-0.1.0.gem
|
136
138
|
- s3_media_server_api.gemspec
|
137
139
|
homepage:
|
138
140
|
licenses:
|