publish2-s3 1.0.0.alpha.1

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.
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: []