multi_video_streaming 1.0.0 → 1.0.1.beta
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/multi_video_streaming/drivers/bunny.rb +2 -6
- data/lib/multi_video_streaming/drivers/s3.rb +6 -1
- data/lib/multi_video_streaming/drivers/vimeo.rb +1 -6
- data/lib/multi_video_streaming/errors.rb +0 -1
- data/lib/multi_video_streaming/helpers/get_default_error_message.rb +0 -4
- data/lib/multi_video_streaming/helpers.rb +3 -3
- data/lib/multi_video_streaming/version.rb +1 -1
- data/lib/multi_video_streaming.rb +29 -17
- metadata +4 -7
- data/lib/multi_video_streaming/errors/invalid_s3_method_name.rb +0 -11
- data/lib/multi_video_streaming/utils/s3/generate_presign_url.rb +0 -15
- data/lib/multi_video_streaming/utils.rb +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0f823ff71e880e3e7efce69dcbdb48456176327e2f0731b9d40d2870d23f0b71
|
4
|
+
data.tar.gz: 9807632350465257894274a8818f498d5593b19757ab59db1f063c8fa26ccc6a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8e4cd7670fd8b64ccc9f7b1ccb49ae6180cfb966f625b9942075b58dc9e2999b8c7dfbb9d48dc21b32ba1e2256af194e793feeaf29616b6875f48fcad4465412
|
7
|
+
data.tar.gz: 104882165a54cd6bc82b918b67b566cc5965cd492fc7f851a1de471283443cf00836d71c99d2f39f379c792020513681694af2f343407270e3d3aea8119fb70b
|
@@ -99,10 +99,10 @@ module MultiVideoStreaming
|
|
99
99
|
end
|
100
100
|
|
101
101
|
response["directPlay"] = "https://video.bunnycdn.com/play/#{library_id}/#{video_id}"
|
102
|
-
response["availableResolutions"] = response["availableResolutions"]
|
102
|
+
response["availableResolutions"] = response["availableResolutions"].split(",")
|
103
103
|
|
104
104
|
files = []
|
105
|
-
response["availableResolutions"]
|
105
|
+
response["availableResolutions"].map do |available_resolution|
|
106
106
|
files <<
|
107
107
|
{
|
108
108
|
file: "https://#{pull_zone}.b-cdn.net/#{response["guid"]}/play_#{available_resolution}.mp4",
|
@@ -116,10 +116,6 @@ module MultiVideoStreaming
|
|
116
116
|
|
117
117
|
response["status"] = STATUS_EQUIVALENT[response["status"].to_s]
|
118
118
|
|
119
|
-
if response["status"] != "available"
|
120
|
-
raise MultiVideoStreaming::Helpers::GetDefaultErrorMessage.not_available
|
121
|
-
end
|
122
|
-
|
123
119
|
return self.response_instance.add_response(
|
124
120
|
platform_name: "bunny",
|
125
121
|
status: "success",
|
@@ -29,7 +29,7 @@ module MultiVideoStreaming
|
|
29
29
|
response = Aws::S3::Resource.new().bucket(bucket).object(video_id)
|
30
30
|
video_url = response.public_url
|
31
31
|
|
32
|
-
url_signed =
|
32
|
+
url_signed = generate_presign_url(bucket: bucket, key: video_id)
|
33
33
|
data = {
|
34
34
|
"key": response.key,
|
35
35
|
"title": response.key,
|
@@ -140,6 +140,11 @@ module MultiVideoStreaming
|
|
140
140
|
Aws.config.update(credentials: credentials, region: region, force_path_style: true)
|
141
141
|
end
|
142
142
|
end
|
143
|
+
|
144
|
+
def generate_presign_url(bucket:, key:)
|
145
|
+
signer = Aws::S3::Presigner.new
|
146
|
+
signer.presigned_url(:get_object, bucket: bucket, key: key, expires_in: 900)
|
147
|
+
end
|
143
148
|
end
|
144
149
|
end
|
145
150
|
end
|
@@ -105,7 +105,7 @@ module MultiVideoStreaming
|
|
105
105
|
|
106
106
|
available_resolutions = []
|
107
107
|
files = []
|
108
|
-
response["files"]
|
108
|
+
response["files"].each do |file|
|
109
109
|
if file["rendition"] != "adaptive"
|
110
110
|
available_resolutions << file["rendition"]
|
111
111
|
files << { file: file["link"], label: file["rendition"] }
|
@@ -116,11 +116,6 @@ module MultiVideoStreaming
|
|
116
116
|
response["files"] = files
|
117
117
|
response["available_resolutions"] = available_resolutions
|
118
118
|
response["status"] = STATUS_EQUIVALENT[response["status"]]
|
119
|
-
|
120
|
-
if response["status"] != "available"
|
121
|
-
raise MultiVideoStreaming::Helpers::GetDefaultErrorMessage.not_available
|
122
|
-
end
|
123
|
-
|
124
119
|
return self.response_instance.add_response(
|
125
120
|
platform_name: "vimeo",
|
126
121
|
status: "success",
|
@@ -3,6 +3,5 @@
|
|
3
3
|
require "multi_video_streaming/errors/duplicated_platform_name"
|
4
4
|
require "multi_video_streaming/errors/invalid_platform_name"
|
5
5
|
require "multi_video_streaming/errors/invalid_platforms_param"
|
6
|
-
require "multi_video_streaming/errors/invalid_s3_method_name"
|
7
6
|
require "multi_video_streaming/errors/missing_param"
|
8
7
|
require "multi_video_streaming/errors/s3_is_not_valid_to_upload"
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "multi_video_streaming/helpers/title_from_url"
|
4
|
-
require "multi_video_streaming/helpers/sort_files_array_by_label"
|
5
|
-
require "multi_video_streaming/helpers/get_default_error_message"
|
3
|
+
require "multi_video_streaming/helpers/title_from_url.rb"
|
4
|
+
require "multi_video_streaming/helpers/sort_files_array_by_label.rb"
|
5
|
+
require "multi_video_streaming/helpers/get_default_error_message.rb"
|
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'thread'
|
4
|
+
require 'thwait'
|
3
5
|
require "uri"
|
4
6
|
require "net/http"
|
5
7
|
require "openssl"
|
@@ -14,12 +16,13 @@ require "multi_video_streaming/factories"
|
|
14
16
|
require "multi_video_streaming/errors"
|
15
17
|
require "multi_video_streaming/response"
|
16
18
|
require "multi_video_streaming/helpers"
|
17
|
-
require "multi_video_streaming/utils"
|
18
19
|
require "multi_video_streaming/version"
|
19
20
|
require "multi_video_streaming/validators"
|
20
21
|
|
21
22
|
module MultiVideoStreaming
|
22
23
|
def self.upload(url, *platforms)
|
24
|
+
threads = []
|
25
|
+
|
23
26
|
MultiVideoStreaming::Validators::PlatformsArrayValidator.validate(platforms_array: platforms)
|
24
27
|
MultiVideoStreaming::Validators::PlatformsHashValidator.validate(platforms_hash: platforms, method: :create, number_of_platforms: platforms.length)
|
25
28
|
|
@@ -28,16 +31,19 @@ module MultiVideoStreaming
|
|
28
31
|
https_service_instance = MultiVideoStreaming::Services::Https.new
|
29
32
|
|
30
33
|
platforms.each do |platform|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
34
|
+
threads << Thread.new {
|
35
|
+
platform_instance = MultiVideoStreaming::Factories::Drive.get_platform_instance(
|
36
|
+
platform_name: platform[:platform_name],
|
37
|
+
dependency_params: platform[:dependency_params],
|
38
|
+
response_instance: response_instance,
|
39
|
+
required_fields_validator_instance: required_fields_validator_instance,
|
40
|
+
https_service_instance: https_service_instance
|
41
|
+
)
|
42
|
+
platform_instance.upload_video(url: url)
|
43
|
+
}
|
39
44
|
end
|
40
45
|
|
46
|
+
ThreadsWait.all_waits(*threads)
|
41
47
|
response_instance.get_all_response
|
42
48
|
end
|
43
49
|
|
@@ -70,6 +76,8 @@ module MultiVideoStreaming
|
|
70
76
|
end
|
71
77
|
|
72
78
|
def self.delete(*platforms)
|
79
|
+
threads = []
|
80
|
+
|
73
81
|
MultiVideoStreaming::Validators::PlatformsArrayValidator.validate(platforms_array: platforms)
|
74
82
|
MultiVideoStreaming::Validators::PlatformsHashValidator.validate(platforms_hash: platforms, method: :get, number_of_platforms: platforms.length)
|
75
83
|
|
@@ -78,15 +86,19 @@ module MultiVideoStreaming
|
|
78
86
|
https_service_instance = MultiVideoStreaming::Services::Https.new
|
79
87
|
|
80
88
|
platforms.each do |platform|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
+
threads << Thread.new {
|
90
|
+
platform_instance = MultiVideoStreaming::Factories::Drive.get_platform_instance(
|
91
|
+
platform_name: platform[:platform_name],
|
92
|
+
dependency_params: platform[:dependency_params],
|
93
|
+
response_instance: response_instance,
|
94
|
+
required_fields_validator_instance: required_fields_validator_instance,
|
95
|
+
https_service_instance: https_service_instance
|
96
|
+
)
|
97
|
+
platform_instance.delete_video
|
98
|
+
}
|
89
99
|
end
|
100
|
+
|
101
|
+
ThreadsWait.all_waits(*threads)
|
90
102
|
response_instance.get_all_response
|
91
103
|
end
|
92
104
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: multi_video_streaming
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1.beta
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henrique Schmeller
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2022-
|
13
|
+
date: 2022-09-29 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rspec
|
@@ -83,7 +83,6 @@ files:
|
|
83
83
|
- lib/multi_video_streaming/errors/duplicated_platform_name.rb
|
84
84
|
- lib/multi_video_streaming/errors/invalid_platform_name.rb
|
85
85
|
- lib/multi_video_streaming/errors/invalid_platforms_param.rb
|
86
|
-
- lib/multi_video_streaming/errors/invalid_s3_method_name.rb
|
87
86
|
- lib/multi_video_streaming/errors/missing_param.rb
|
88
87
|
- lib/multi_video_streaming/errors/s3_is_not_valid_to_upload.rb
|
89
88
|
- lib/multi_video_streaming/factories.rb
|
@@ -100,8 +99,6 @@ files:
|
|
100
99
|
- lib/multi_video_streaming/response.rb
|
101
100
|
- lib/multi_video_streaming/services.rb
|
102
101
|
- lib/multi_video_streaming/services/https.rb
|
103
|
-
- lib/multi_video_streaming/utils.rb
|
104
|
-
- lib/multi_video_streaming/utils/s3/generate_presign_url.rb
|
105
102
|
- lib/multi_video_streaming/validators.rb
|
106
103
|
- lib/multi_video_streaming/validators/platform_name_validator.rb
|
107
104
|
- lib/multi_video_streaming/validators/platforms_array_validator.rb
|
@@ -123,9 +120,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
123
120
|
version: '0'
|
124
121
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
125
122
|
requirements:
|
126
|
-
- - "
|
123
|
+
- - ">"
|
127
124
|
- !ruby/object:Gem::Version
|
128
|
-
version:
|
125
|
+
version: 1.3.1
|
129
126
|
requirements: []
|
130
127
|
rubygems_version: 3.0.3
|
131
128
|
signing_key:
|
@@ -1,15 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module MultiVideoStreaming
|
4
|
-
module Utils
|
5
|
-
module S3
|
6
|
-
def self.generate_presign_url(method:, bucket:, key:)
|
7
|
-
methods = { :get => :get_object, :put => :put_object, :delete => :delete_object }
|
8
|
-
method_to_generate_presign_url = methods[method]
|
9
|
-
raise MultiVideoStreaming::Errors::InvalidS3MethodName.new(method) if method_to_generate_presign_url.nil?
|
10
|
-
signer = Aws::S3::Presigner.new
|
11
|
-
signer.presigned_url(method_to_generate_presign_url, bucket: bucket, key: key, expires_in: 900)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|