publish2-s3 1.0.0.alpha.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +15 -0
  2. data/lib/publish2-s3.rb +42 -0
  3. metadata +78 -0
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZTFkZGQ1MTNkN2NmM2U5ZTZmMDdhZWVjMzlkYWMzMThiOThiZDFlMg==
5
+ data.tar.gz: !binary |-
6
+ NjFiYjQxYmVlNmIwMzJhN2RhZTk5YzY2MjdlNTFlM2NkZjcwNzkyMw==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ ZmE1NzEzZjIxMzU0MDBmYjE5NGUxZGZjMzViY2VkZmYwYmQ0MzE0YjgyMzgw
10
+ YjJjMmViMzZkM2RjMTc2OTg0YjA1ZmJjZGEwNjQ3NWFmNDdhM2I2NGFiOGYz
11
+ NDk4ZmFlMDZjOWJmMmQ3NmRiNTAwY2U3NzdjOGQzMmFmNjBkMmQ=
12
+ data.tar.gz: !binary |-
13
+ ZjMyOGIyMDg0NGIzYzY1YjBiMjcxMzBiOWRmYjI5ZjgwZDNkMDkzZmYxZDQ4
14
+ N2JlOGVhYWQzMDVkMjQ5NGQzMTRhODA3MDM4NGIzZjczNDdlZjE4MGQxM2Fl
15
+ OTFiNDIwZDVjNjNjM2M0OTc0M2NlMmVlOTNhMjkyY2RhNjAxYzY=
@@ -0,0 +1,42 @@
1
+ require 'aws-sdk-resources'
2
+
3
+ require 'publish2'
4
+
5
+ module Publish2::Backends
6
+
7
+ class S3 < Publish2::Backends::Base
8
+
9
+ attr_reader :bucket, :url_params
10
+
11
+ def initialize(options = {})
12
+ @bucket = S3.coerce_bucket!(options.fetch(:bucket))
13
+ @url_params = options.fetch(:url_params, {})
14
+ end
15
+
16
+ def self.coerce_bucket!(thing)
17
+ if thing.is_a? Aws::S3::Bucket
18
+ return thing
19
+ elsif thing.is_a? String
20
+ r = Aws::S3::Resource.new
21
+ return r.bucket(thing)
22
+
23
+ else
24
+ raise ArgumentError, "Cannot coerce input into Aws::S3::Bucket : #{thing}"
25
+
26
+ end
27
+ end
28
+
29
+ def publish(name, src_path)
30
+ obj = bucket.object(name)
31
+ obj.upload_file(src_path)
32
+
33
+ return {
34
+ bucket_name: bucket.name,
35
+ object_name: name,
36
+ url: obj.presigned_url(:get, url_params)
37
+ }
38
+ end
39
+
40
+ end
41
+
42
+ end
metadata ADDED
@@ -0,0 +1,78 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: publish2-s3
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0.alpha.1
5
+ platform: ruby
6
+ authors:
7
+ - Brian Lauber
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-05-22 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: publish2
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: 1.0.0.alpha.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 1.0.0.alpha.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: aws-sdk-resources
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '2.0'
34
+ - - ! '>='
35
+ - !ruby/object:Gem::Version
36
+ version: 2.0.45
37
+ type: :runtime
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: '2.0'
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: 2.0.45
47
+ description: Publish2 backend for AWS-S3
48
+ email: constructible.truth@gmail.com
49
+ executables: []
50
+ extensions: []
51
+ extra_rdoc_files: []
52
+ files:
53
+ - lib/publish2-s3.rb
54
+ homepage: https://github.com/briandamaged/publish2-s3
55
+ licenses:
56
+ - MIT
57
+ metadata: {}
58
+ post_install_message:
59
+ rdoc_options: []
60
+ require_paths:
61
+ - lib
62
+ required_ruby_version: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ! '>='
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ required_rubygems_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ! '>'
70
+ - !ruby/object:Gem::Version
71
+ version: 1.3.1
72
+ requirements: []
73
+ rubyforge_project:
74
+ rubygems_version: 2.4.6
75
+ signing_key:
76
+ specification_version: 4
77
+ summary: Publish2 backend for AWS-S3
78
+ test_files: []