s3_media_server_api 0.1.2.2 → 0.1.2.3

Sign up to get free protection for your applications and to get access to all the features.
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