s3stream 0.0.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.
- data/.gitignore +5 -0
- data/.rvmrc +1 -0
- data/Gemfile +4 -0
- data/Guardfile +14 -0
- data/README +28 -0
- data/Rakefile +24 -0
- data/bin/s3stream +4 -0
- data/lib/s3stream/version.rb +3 -0
- data/lib/s3stream.rb +19 -0
- data/s3stream.gemspec +29 -0
- data/spec/lib/s3stream_spec.rb +3 -0
- data/spec/spec_helper.rb +7 -0
- metadata +148 -0
data/.gitignore
ADDED
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm 1.9.3@s3stream --create
|
data/Gemfile
ADDED
data/Guardfile
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
# A sample Guardfile
|
2
|
+
# More info at https://github.com/guard/guard#readme
|
3
|
+
|
4
|
+
guard 'bundler' do
|
5
|
+
watch('Gemfile')
|
6
|
+
watch(/^.+\.gemspec/)
|
7
|
+
end
|
8
|
+
|
9
|
+
guard 'rspec', :cli => '-c --format documentation -r ./spec/spec_helper.rb',
|
10
|
+
:version => 2 do
|
11
|
+
watch(%r{^spec/.+_spec\.rb})
|
12
|
+
watch(%r{^lib/(.+)\.rb}) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
13
|
+
watch('spec/spec_helper.rb') { "spec" }
|
14
|
+
end
|
data/README
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
Installation
|
2
|
+
============
|
3
|
+
|
4
|
+
gem install s3stream
|
5
|
+
|
6
|
+
Configuration
|
7
|
+
=============
|
8
|
+
|
9
|
+
export AMAZON_ACCESS_KEY_ID='abcdefghijklmnop'
|
10
|
+
export AMAZON_SECRET_ACCESS_KEY='1234567891012345'
|
11
|
+
|
12
|
+
Usage
|
13
|
+
=====
|
14
|
+
From the command line:
|
15
|
+
|
16
|
+
% s3stream fetch mybucket myfile.dat > /tmp/myfile.dat
|
17
|
+
% s3stream store mybucket myfile.dat < /tmp/myfile.dat
|
18
|
+
|
19
|
+
And if you want to get fancy:
|
20
|
+
|
21
|
+
% cat <(s3stream fetch mybucket log0.log.gz | gunzip) <(s3stream fetch mybucket log1.log.gz | gunzip) | gzip > s3stream store mybucket combined.log.gz
|
22
|
+
|
23
|
+
|
24
|
+
Development
|
25
|
+
===========
|
26
|
+
gem install bundler
|
27
|
+
bundle install
|
28
|
+
guard
|
data/Rakefile
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
2
|
+
require 'rspec/core/rake_task'
|
3
|
+
|
4
|
+
desc "Run all specs"
|
5
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
6
|
+
t.rspec_opts = [
|
7
|
+
'-c',
|
8
|
+
'--format documentation',
|
9
|
+
'-r ./spec/spec_helper.rb'
|
10
|
+
]
|
11
|
+
t.pattern = 'spec/**/*_spec.rb'
|
12
|
+
end
|
13
|
+
|
14
|
+
desc "open coverage report"
|
15
|
+
task :coverage do
|
16
|
+
system 'rake spec'
|
17
|
+
system 'open coverage/index.html'
|
18
|
+
end
|
19
|
+
|
20
|
+
desc "Open development console"
|
21
|
+
task :console do
|
22
|
+
puts "Loading development console..."
|
23
|
+
system "irb -I #{File.join('.', 'lib')} -r #{File.join('.', 'lib', 's3stream')}"
|
24
|
+
end
|
data/bin/s3stream
ADDED
data/lib/s3stream.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
require "s3stream/version"
|
2
|
+
require "thor"
|
3
|
+
require "aws/s3"
|
4
|
+
|
5
|
+
module S3Stream
|
6
|
+
class Main < Thor
|
7
|
+
desc "fetch bucket filename", "download/stream the file from S3 to stdout"
|
8
|
+
def fetch(bucket, filename)
|
9
|
+
AWS::S3::S3Object.stream(filename, bucket) do |chunk|
|
10
|
+
$stdout.write chunk
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
desc "store bucket filename", "upload/stream the file from stdin to S3"
|
15
|
+
def store(bucket, filename)
|
16
|
+
AWS::S3::S3Object.store(filename, ARGF, bucket)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/s3stream.gemspec
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "s3stream/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "s3stream"
|
7
|
+
s.version = S3Stream::VERSION
|
8
|
+
s.authors = ["Chris Johnson"]
|
9
|
+
s.email = ["chris@kindkid.com"]
|
10
|
+
s.homepage = ""
|
11
|
+
s.summary = "Stream files on S3 to stdout or from stdin"
|
12
|
+
s.description = s.summary
|
13
|
+
|
14
|
+
s.rubyforge_project = "s3stream"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
s.add_runtime_dependency "aws-s3", "~> 0.6.2"
|
22
|
+
s.add_runtime_dependency "thor", "~> 0.14.6"
|
23
|
+
s.add_development_dependency "rspec", "~> 2.6"
|
24
|
+
s.add_development_dependency "simplecov", "~> 0.4"
|
25
|
+
s.add_development_dependency("rb-fsevent", "~> 0.4") if RUBY_PLATFORM =~ /darwin/i
|
26
|
+
s.add_development_dependency "guard", "~> 0.5"
|
27
|
+
s.add_development_dependency "guard-bundler", "~> 0.1"
|
28
|
+
s.add_development_dependency "guard-rspec", "~> 0.4"
|
29
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,148 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: s3stream
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Chris Johnson
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-02-23 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: aws-s3
|
16
|
+
requirement: &70202792479320 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 0.6.2
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70202792479320
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: thor
|
27
|
+
requirement: &70202792477020 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ~>
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 0.14.6
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70202792477020
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rspec
|
38
|
+
requirement: &70202792476260 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '2.6'
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70202792476260
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: simplecov
|
49
|
+
requirement: &70202792475440 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.4'
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *70202792475440
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: rb-fsevent
|
60
|
+
requirement: &70202792474420 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ~>
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0.4'
|
66
|
+
type: :development
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *70202792474420
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: guard
|
71
|
+
requirement: &70202792473580 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ~>
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0.5'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *70202792473580
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: guard-bundler
|
82
|
+
requirement: &70202792472000 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ~>
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0.1'
|
88
|
+
type: :development
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: *70202792472000
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: guard-rspec
|
93
|
+
requirement: &70202792470520 !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
95
|
+
requirements:
|
96
|
+
- - ~>
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0.4'
|
99
|
+
type: :development
|
100
|
+
prerelease: false
|
101
|
+
version_requirements: *70202792470520
|
102
|
+
description: Stream files on S3 to stdout or from stdin
|
103
|
+
email:
|
104
|
+
- chris@kindkid.com
|
105
|
+
executables:
|
106
|
+
- s3stream
|
107
|
+
extensions: []
|
108
|
+
extra_rdoc_files: []
|
109
|
+
files:
|
110
|
+
- .gitignore
|
111
|
+
- .rvmrc
|
112
|
+
- Gemfile
|
113
|
+
- Guardfile
|
114
|
+
- README
|
115
|
+
- Rakefile
|
116
|
+
- bin/s3stream
|
117
|
+
- lib/s3stream.rb
|
118
|
+
- lib/s3stream/version.rb
|
119
|
+
- s3stream.gemspec
|
120
|
+
- spec/lib/s3stream_spec.rb
|
121
|
+
- spec/spec_helper.rb
|
122
|
+
homepage: ''
|
123
|
+
licenses: []
|
124
|
+
post_install_message:
|
125
|
+
rdoc_options: []
|
126
|
+
require_paths:
|
127
|
+
- lib
|
128
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
130
|
+
requirements:
|
131
|
+
- - ! '>='
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '0'
|
134
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
135
|
+
none: false
|
136
|
+
requirements:
|
137
|
+
- - ! '>='
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '0'
|
140
|
+
requirements: []
|
141
|
+
rubyforge_project: s3stream
|
142
|
+
rubygems_version: 1.8.10
|
143
|
+
signing_key:
|
144
|
+
specification_version: 3
|
145
|
+
summary: Stream files on S3 to stdout or from stdin
|
146
|
+
test_files:
|
147
|
+
- spec/lib/s3stream_spec.rb
|
148
|
+
- spec/spec_helper.rb
|