presigner 0.0.1 → 0.0.2

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: fd5bde556dc86fa8d6e946e1cd9c423e7cd29cf1
4
- data.tar.gz: df74d7f9af9bfd23812b94426ae090cc41b20697
3
+ metadata.gz: 02cd85a3175bbb93c9ee386eea94baa8e8395c45
4
+ data.tar.gz: c087b0160933cbca516fc35c44c2dfedcffc8f4e
5
5
  SHA512:
6
- metadata.gz: 952044ea5da7766be47a7557694dbdfeca4ae7d363ef59a5f72b00ab1008d6a1a5594fb3f7bdfa0034fe001de55249d956102d663db67d158ec3330de534c86f
7
- data.tar.gz: b3c192704a994e667b770575a6a6931a4eb5aac038ee30a006c810639d17aa8153abed69b257e972bf836bd95302725727ade19e3e8a237c33067f9a95902615
6
+ metadata.gz: 4c54525782582f34096da95dd28388412a728be49f2fe053e54ff44360b1c0faa09d2b2d3c953caeabf615ac8d1c4984648aa6479050ce238ae46d9ed63135d7
7
+ data.tar.gz: 1a0268130c725d049fa6ec82d130ada5bf486a331ac2220398924f594ee06b54be55dfae51e140aa0a7016823b9c99d908d71fd6149da9cef84077bb8674734d
data/README.md CHANGED
@@ -21,7 +21,7 @@ Or install it yourself as:
21
21
  ## Usage
22
22
 
23
23
  ```bash
24
- $ presigner --bucket foobucket --key bar.txt --duration 3600 --profile default
24
+ $ presigner generate --bucket foobucket --key bar.txt --duration 3600 --profile default
25
25
  ```
26
26
 
27
27
  - Currently, You can provide duration only in seconds.
data/bin/presigner CHANGED
@@ -7,10 +7,26 @@ class PresignerCLI < Thor
7
7
  option :bucket, :required => true
8
8
  option :key, :required => true
9
9
  option :profile
10
+ option :access_key
11
+ option :secret_key
10
12
  option :duration
13
+ option :region
11
14
  desc "generate", "generate S3 presigned URL"
12
15
 
13
16
  def generate
17
+ aws_opts = {}
18
+ if options[:access_key] and options[:secret_key]
19
+ aws_opts[:access_key] = options[:access_key]
20
+ aws_opts[:secret_key] = options[:secret_key]
21
+ elsif options[:profile]
22
+ prov = AWS::Core::CredentialProviders::
23
+ SharedCredentialFileProvider.new(profile_name: options[:profile])
24
+ aws_opts[:credential_provider] = prov
25
+ end
26
+
27
+ aws_opts[:region] = options[:region] if options[:region]
28
+ AWS.config(aws_opts)
29
+
14
30
  presigner= Presigner.new(options)
15
31
  url = presigner.generate
16
32
  $stdout.puts url
data/lib/presigner.rb CHANGED
@@ -8,9 +8,6 @@ class Presigner
8
8
  DEFAULT_DURATION = 60 * 30
9
9
 
10
10
  def initialize(options)
11
- prov = AWS::Core::CredentialProviders::
12
- SharedCredentialFileProvider.new(profile_name: options[:profile])
13
- AWS.config(credential_provider: prov)
14
11
  @bucket = options[:bucket]
15
12
  @key = options[:key]
16
13
  @duration = options[:duration].nil? ? DEFAULT_DURATION : options[:duration].to_i
@@ -23,7 +20,17 @@ class Presigner
23
20
 
24
21
  s3 = AWS::S3.new
25
22
  # check if specified bucket and key exist.
26
- target_obj = s3.buckets[bucket].objects[key]
23
+ begin
24
+ target_obj = s3.buckets[bucket].objects[key]
25
+ if !target_obj.exists?
26
+ $stderr.puts "Specified bucket or key does not exist."
27
+ exit 1
28
+ end
29
+ rescue AWS::S3::Errors::Forbidden
30
+ $stderr.puts "Access to the S3 object is denied. Credential or target name might be wrong"
31
+ exit 1
32
+ end
33
+
27
34
  if !target_obj.exists?
28
35
  $stderr.puts "Specified bucket or key does not exist."
29
36
  exit 1
@@ -32,11 +39,11 @@ class Presigner
32
39
  presigner = AWS::S3::PresignV4.new(target_obj)
33
40
  expires = calc_duration
34
41
 
35
- url = presigner.presign(:get, expires: expires, secure: true)
42
+ url = presigner.presign(:get, expires: base + duration, secure: true)
36
43
  url
37
44
  end
38
45
 
39
46
  def calc_duration
40
- base + duration
47
+ duration
41
48
  end
42
49
  end
@@ -1,3 +1,3 @@
1
1
  class Presigner
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: presigner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masao Mochizuki
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-24 00:00:00.000000000 Z
11
+ date: 2015-02-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler