s3_media_server_api 0.1.2.2 → 0.1.2.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5ac65315e2322805f5b9d1364ff9c0eabd0f4e9d
4
- data.tar.gz: 84ad5c095205ce1943f77fae992fce9906bd2798
3
+ metadata.gz: 53c8229ea9ed330f81029c2540676c46bfdf13cd
4
+ data.tar.gz: 59c87a40dba0dbd1d591d64e6ce4363a43e0a80d
5
5
  SHA512:
6
- metadata.gz: c735a64c83e6aa25e516add791021fa925c6d02bae5edef034127301bddd703099113e7e087d4eb6a33aef687a1077cc89365a700426873fa12414d2923c866e
7
- data.tar.gz: c3a6f98e15da99109468355aa37f18f3fe119b75545efa598063597968f9829c9086618dd1980992c38a6b4d2af01ddb3d35efa1fc32c83e62bafc7ac999acbb
6
+ metadata.gz: d95169c68211219acb6f501420a2938c5dfca34964c3f570fa64c7a450169851c8dbaf8b64630cb13fa08cedac7cf4ef362b2f93e75c1b8bda7819c5d24ef64f
7
+ data.tar.gz: 019bfce35828c2c02ecd2f855d2b42106e4498241a6dc05fc328814c404483ac82d965aefc73bec90c878b19f2a4b3c8e22e26bf9215e30a554569627ff75d11
data/Gemfile.lock CHANGED
@@ -1,8 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- s3_media_server_api (0.1.0.3)
4
+ s3_media_server_api (0.1.2.2)
5
5
  asynk (>= 0.0.1)
6
+ curb
6
7
  faraday
7
8
  mimemagic
8
9
  parallel
@@ -49,18 +50,19 @@ GEM
49
50
  timers (>= 4.1.1)
50
51
  concurrent-ruby (1.0.2)
51
52
  connection_pool (2.2.0)
53
+ curb (0.9.3)
52
54
  faraday (0.9.2)
53
55
  multipart-post (>= 1.2, < 3)
54
56
  hitimes (1.2.4)
55
57
  i18n (0.7.0)
56
58
  json (1.8.3)
57
- mimemagic (0.3.1)
59
+ mimemagic (0.3.2)
58
60
  minitest (5.9.0)
59
61
  multipart-post (2.0.0)
60
62
  nio4r (1.2.1)
61
63
  parallel (1.9.0)
62
64
  rake (10.5.0)
63
- simple_file_uploader (0.0.1)
65
+ simple_file_uploader (0.0.2)
64
66
  bunny
65
67
  thread_safe (0.3.5)
66
68
  timers (4.1.1)
@@ -78,4 +80,4 @@ DEPENDENCIES
78
80
  s3_media_server_api!
79
81
 
80
82
  BUNDLED WITH
81
- 1.11.2
83
+ 1.12.5
data/README.md CHANGED
@@ -194,6 +194,11 @@ S3MediaServerApi::Media::Colllection.destroy(created_collection.uuid)
194
194
  # to create aws file from its path, use upload method from S3MediaServerApi::Uploader module
195
195
  aws_file = S3MediaServerApi::Uploader.upload('/Users/ayrat/Development/s3_media_server_api/tmp/test_image.jpg')
196
196
 
197
+ # to create aws file from its url, use upload_from_url method from S3MediaServerApi::Uploader module
198
+ image_url = "https://d2l3jyjp24noqc.cloudfront.net/uploads/image/img/269/Test-Driven_APIs_with_Phoenix_and_Elixir.png"
199
+ file = S3MediaServerApi::Uploader.upload_from_url(image_url)
200
+
201
+
197
202
  # to resolve aws file, use resolve method
198
203
  resolved_aws_file = S3MediaServerApi::AwsFile.resolve(aws_file.uuid)
199
204
 
@@ -41,6 +41,10 @@ module S3MediaServerApi
41
41
  @params
42
42
  end
43
43
 
44
+ def exists?
45
+ !@params.empty?
46
+ end
47
+
44
48
  class << self
45
49
  class AwsFileError < S3MediaServerApiError; end
46
50
  class FileCreationError < AwsFileError; end
@@ -0,0 +1,42 @@
1
+ require 'fileutils'
2
+ require 'curb'
3
+
4
+ module S3MediaServerApi
5
+ module Downloader
6
+
7
+ class << self
8
+ def download_by_url(url)
9
+ file_path = generate_random_file_name
10
+ easy = Curl::Easy.new(url)
11
+ easy.ssl_verify_peer = false
12
+ File.open(file_path, 'wb') do |f|
13
+ easy.on_body {|data| f << data; data.size }
14
+ easy.perform
15
+ end
16
+ file_path
17
+ end
18
+
19
+ def remove_if_exists(path)
20
+ return if path.nil?
21
+ FileUtils.rm(path) if File.exist?(path)
22
+ end
23
+
24
+ private
25
+
26
+ def generate_random_file_name
27
+ File.join(tmp_dir, SecureRandom.uuid)
28
+ end
29
+
30
+ def tmp_dir
31
+ path = File.join('tmp', 'files')
32
+ create_dir_if_not_exists(path)
33
+ path
34
+ end
35
+
36
+ def create_dir_if_not_exists(path)
37
+ FileUtils.mkdir_p path
38
+ end
39
+
40
+ end
41
+ end
42
+ end
@@ -13,6 +13,13 @@ module S3MediaServerApi
13
13
 
14
14
  class UploaderError < S3MediaServerApiError; end
15
15
  class PartUploadError < UploaderError; end
16
+
17
+ def upload_from_url(url)
18
+ file = S3MediaServerApi::Downloader.download_by_url(url)
19
+ upload(file)
20
+ ensure
21
+ S3MediaServerApi::Downloader.remove_if_exists(file)
22
+ end
16
23
  #
17
24
  # uploads file to amazon s3 and create AwsFile object
18
25
  # parameter : filepath - file path in file system
@@ -1,3 +1,3 @@
1
1
  module S3MediaServerApi
2
- VERSION = "0.1.2.2"
2
+ VERSION = "0.1.2.3"
3
3
  end
@@ -2,6 +2,7 @@ require "s3_media_server_api/version"
2
2
  require "s3_media_server_api/error"
3
3
  require "s3_media_server_api/cache"
4
4
  require "s3_media_server_api/config"
5
+ require "s3_media_server_api/downloader"
5
6
  require "s3_media_server_api/uploader"
6
7
  require "s3_media_server_api/file_part"
7
8
  require "s3_media_server_api/aws_file"
@@ -24,5 +24,6 @@ Gem::Specification.new do |spec|
24
24
  spec.add_dependency 'parallel'
25
25
  spec.add_dependency 'mimemagic'
26
26
  spec.add_dependency 'faraday'
27
+ spec.add_dependency 'curb'
27
28
  spec.add_dependency 'simple_file_uploader'
28
29
  end
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.2.2
4
+ version: 0.1.2.3
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-27 00:00:00.000000000 Z
11
+ date: 2016-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: curb
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: simple_file_uploader
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -142,6 +156,7 @@ files:
142
156
  - lib/s3_media_server_api/consumers.rb
143
157
  - lib/s3_media_server_api/consumers/consumer_helper.rb
144
158
  - lib/s3_media_server_api/consumers/s3_media_server_consumer.rb
159
+ - lib/s3_media_server_api/downloader.rb
145
160
  - lib/s3_media_server_api/error.rb
146
161
  - lib/s3_media_server_api/file_part.rb
147
162
  - lib/s3_media_server_api/media.rb