tn_s3_file_uploader 0.1.8 → 0.1.9
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7f60a16847c7c072d148a3accaf2ed48b1535aeb
|
4
|
+
data.tar.gz: fe05f935dec58056e2a7717d9f21bfab031751c5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3ae8a26d5339599ac657cccbcbdc19ae71fcfb8f1a81bc360976679e78e9d17786e3a4df3c07666065210d3c99cca0549d263de52c4ee930e906d9a86cb461a9
|
7
|
+
data.tar.gz: 0080d296b62139eb18c30d329f76769b9912655a6f9cfb0ab5c873ff76c79f0ed3fef675d61f413b4780939c57238ec2939bb58b84d93d5e389618a0fd81739d
|
@@ -50,13 +50,11 @@ module TnS3FileUploader
|
|
50
50
|
opts.on("--aws-secret-access-key AWS-SECRET-ACCESS-KEY", "Provide the AWS secret access key") do |aws_secret_access_key|
|
51
51
|
options[:aws_secret_access_key] = aws_secret_access_key
|
52
52
|
end
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
options[:udp_resolve_ip] = resolve_ip
|
59
|
-
end
|
53
|
+
|
54
|
+
options[:use_ec2_metadata_flag] = true
|
55
|
+
opts.on("--use-ec2-metadata [USE_EC2_METADATA]", "The flag for using the ec2 instance metadata endpoint to lookup the local IP."\
|
56
|
+
"It is an optional parameter, default is true.") do |use_ec2_metadata|
|
57
|
+
options[:use_ec2_metadata_flag] = use_ec2_metadata
|
60
58
|
end
|
61
59
|
|
62
60
|
opts.on("-v", "--verbose", "Display verbose output") do |v|
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'rubygems'
|
2
|
+
require 'net/http'
|
2
3
|
|
3
4
|
module TnS3FileUploader
|
4
5
|
|
@@ -15,6 +16,8 @@ module TnS3FileUploader
|
|
15
16
|
# date = Wed Jun 18 19:03:40 UTC 2014
|
16
17
|
class FilePathGenerator
|
17
18
|
|
19
|
+
EC2_INSTANCE_METADATA_IP='169.254.169.254'
|
20
|
+
|
18
21
|
def initialize(options)
|
19
22
|
#Find the last rotation window
|
20
23
|
@options = options
|
@@ -62,16 +65,15 @@ module TnS3FileUploader
|
|
62
65
|
end
|
63
66
|
end
|
64
67
|
|
65
|
-
# First tries to find local IP using
|
68
|
+
# First tries to find local IP using the EC2 instance metadata endpoint.
|
66
69
|
# In the event of a failure, we will revert to using the old
|
67
70
|
# method of local ip retrieval. In the event that both techniques
|
68
71
|
# fail, we return a default value
|
69
72
|
def local_ip
|
70
|
-
resolve_ip = @options[:udp_resolve_ip]
|
71
73
|
ip_address = nil
|
72
|
-
|
73
|
-
|
74
|
-
ip_address =
|
74
|
+
|
75
|
+
if @options[:use_ec2_metadata_flag]
|
76
|
+
ip_address = ec2_instance_metadata_local_ip
|
75
77
|
end
|
76
78
|
|
77
79
|
unless ip_address.nil? or valid_ip?(ip_address)
|
@@ -81,27 +83,14 @@ module TnS3FileUploader
|
|
81
83
|
unless valid_ip?(ip_address)
|
82
84
|
ip_address = '0.0.0.0'
|
83
85
|
end
|
84
|
-
|
86
|
+
|
85
87
|
ip_address
|
86
88
|
end
|
87
89
|
|
88
|
-
|
89
|
-
|
90
|
-
# UDP is a stateless protocol, the connect method makes
|
91
|
-
# a system call to determine packet routing based on address and what interface it
|
92
|
-
# should bind to. addr returns an array containing the family, local port and local address
|
93
|
-
# The local address is the last element in the addr array.
|
94
|
-
def udp_resolve_ip(resolve_ip)
|
95
|
-
orig, Socket.do_not_reverse_lookup = Socket.do_not_reverse_lookup, true
|
96
|
-
|
97
|
-
UDPSocket.open do |s|
|
98
|
-
s.connect resolve_ip, 1
|
99
|
-
s.addr.last
|
100
|
-
end
|
101
|
-
ensure
|
102
|
-
Socket.do_not_reverse_lookup = orig
|
90
|
+
def ec2_instance_metadata_local_ip
|
91
|
+
Net::HTTP.get(EC2_INSTANCE_METADATA_IP, '/latest/meta-data/local-ipv4') rescue nil
|
103
92
|
end
|
104
|
-
|
93
|
+
|
105
94
|
def hostname_resolve_ip
|
106
95
|
IPSocket.getaddress(Socket.gethostname)
|
107
96
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tn_s3_file_uploader
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thinknear.com
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-05-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: honeybadger
|
@@ -61,7 +61,7 @@ files:
|
|
61
61
|
- lib/tn_s3_file_uploader/version.rb
|
62
62
|
homepage: http://www.thinknear.com
|
63
63
|
licenses:
|
64
|
-
- Copyright (c) ThinkNear 2014, Licensed under APLv2.0
|
64
|
+
- Copyright (c) ThinkNear 2014-2015, Licensed under APLv2.0
|
65
65
|
metadata: {}
|
66
66
|
post_install_message:
|
67
67
|
rdoc_options: []
|