jets3t-rb 1.0.0
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 +2 -0
- data/README +0 -0
- data/examples/s3.rb +29 -0
- data/jets3t-rb.gemspec +26 -0
- data/lib/ext/commons-codec-1.3.jar +0 -0
- data/lib/ext/commons-httpclient-3.1.jar +0 -0
- data/lib/ext/commons-logging-1.1.1.jar +0 -0
- data/lib/ext/java-xmlbuilder-0.4.jar +0 -0
- data/lib/ext/jets3t-0.8.1.jar +0 -0
- data/lib/jets3t.rb +15 -0
- data/lib/jets3t/aws_credentials.rb +9 -0
- data/lib/jets3t/rest_s3_service.rb +11 -0
- data/lib/jets3t/s3_bucket.rb +46 -0
- data/lib/jets3t/s3_object.rb +15 -0
- data/lib/jets3t/version.rb +5 -0
- metadata +69 -0
data/.gitignore
ADDED
data/README
ADDED
File without changes
|
data/examples/s3.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
$:<< 'lib'
|
2
|
+
|
3
|
+
require 'jets3t'
|
4
|
+
|
5
|
+
module JetS3t
|
6
|
+
AWS_SECRET_PATH = '~/.awssecret'.freeze
|
7
|
+
raise "#{AWS_SECRET_PATH} not found" unless File.exist?(File.expand_path(AWS_SECRET_PATH))
|
8
|
+
|
9
|
+
access_key_id, secret_access_key = File.readlines(File.expand_path(AWS_SECRET_PATH)).map(&:chomp)
|
10
|
+
credentials = AWSCredentials.new(access_key_id, secret_access_key)
|
11
|
+
s3_service = RestS3Service.new(credentials)
|
12
|
+
|
13
|
+
BUCKET_NAME = 'test-bucket-12345'
|
14
|
+
# test_bucket = s3_service.create_bucket(BUCKET_NAME, Location::EUROPE)
|
15
|
+
test_bucket = s3_service.bucket(BUCKET_NAME)
|
16
|
+
|
17
|
+
# # simple string data
|
18
|
+
# data = "Hello World!"
|
19
|
+
# test_bucket.put('test/hello/world/hello_world.txt', data)
|
20
|
+
|
21
|
+
FILE_NAME = '/tmp/hello_world.file'
|
22
|
+
PATH = 'one/two/hello_world.txt'
|
23
|
+
File.open(FILE_NAME, 'w') {|f| f.write('Hello World!') }
|
24
|
+
file = File.new(FILE_NAME)
|
25
|
+
test_bucket.put(PATH, file)
|
26
|
+
|
27
|
+
object = test_bucket.get(PATH)
|
28
|
+
p object.data
|
29
|
+
end
|
data/jets3t-rb.gemspec
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
$: << File.expand_path('../lib', __FILE__)
|
4
|
+
|
5
|
+
require 'jets3t/version'
|
6
|
+
|
7
|
+
Dir['ext/*.jar'].each { |jar| require jar }
|
8
|
+
|
9
|
+
|
10
|
+
Gem::Specification.new do |s|
|
11
|
+
s.name = 'jets3t-rb'
|
12
|
+
s.version = JetS3t::VERSION
|
13
|
+
s.platform = Gem::Platform::RUBY
|
14
|
+
s.authors = ['Daniel Gaiottino']
|
15
|
+
s.email = ['daniel@burtcorp.com']
|
16
|
+
s.homepage = 'http://github.com/gaiottino/jets3t-rb'
|
17
|
+
s.summary = %q{JRuby wrapper for JetS3t}
|
18
|
+
s.description = %q{JRuby wrapper for JetS3t (http://jets3t.s3.amazonaws.com/)}
|
19
|
+
|
20
|
+
s.rubyforge_project = 'jets3t-rb'
|
21
|
+
|
22
|
+
s.files = `git ls-files`.split("\n")
|
23
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
24
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
25
|
+
s.require_paths = %w(lib)
|
26
|
+
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/lib/jets3t.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'java'
|
4
|
+
require 'ext/commons-httpclient-3.1'
|
5
|
+
require 'ext/commons-logging-1.1.1'
|
6
|
+
require 'ext/commons-codec-1.3'
|
7
|
+
require 'ext/java-xmlbuilder-0.4'
|
8
|
+
require 'ext/java-xmlbuilder-0.4'
|
9
|
+
require 'ext/jets3t-0.8.1'
|
10
|
+
|
11
|
+
|
12
|
+
require 'jets3t/aws_credentials'
|
13
|
+
require 'jets3t/rest_s3_service'
|
14
|
+
require 'jets3t/s3_bucket'
|
15
|
+
require 'jets3t/s3_object'
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'tempfile'
|
2
|
+
|
3
|
+
module Jar
|
4
|
+
import org.jets3t.service.model.S3Bucket
|
5
|
+
import org.jets3t.service.model.S3Object
|
6
|
+
end
|
7
|
+
|
8
|
+
module JetS3t
|
9
|
+
class Location
|
10
|
+
ASIA_PACIFIC = Jar::S3Bucket::LOCATION_ASIA_PACIFIC
|
11
|
+
EUROPE = Jar::S3Bucket::LOCATION_EUROPE
|
12
|
+
US = Jar::S3Bucket::LOCATION_US
|
13
|
+
end
|
14
|
+
|
15
|
+
class S3Bucket
|
16
|
+
def initialize(s3_service, name)
|
17
|
+
@s3_service = s3_service
|
18
|
+
@bucket = @s3_service.get_bucket(name)
|
19
|
+
end
|
20
|
+
|
21
|
+
def put(path, file)
|
22
|
+
java_file = java.io.File.new(file.path)
|
23
|
+
input_stream = java.io.FileInputStream.new(java_file)
|
24
|
+
|
25
|
+
object = Jar::S3Object.new(path)
|
26
|
+
object.set_data_input_stream(input_stream)
|
27
|
+
object.set_content_length(java_file.length)
|
28
|
+
object.set_content_type('application/octet-stream')
|
29
|
+
|
30
|
+
# if args.length == 1 && (args[0].instance_of?(File) || args[0].instance_of?(TempFile))
|
31
|
+
# java_file = java.io.File.new(args[0].path)
|
32
|
+
# object = Jar::S3Object.new(java_file)
|
33
|
+
# elsif args.length == 2
|
34
|
+
# object = Jar::S3Object.new(args[0], args[1])
|
35
|
+
# else
|
36
|
+
# raise 'either put(file) or put(filename, data)'
|
37
|
+
# end
|
38
|
+
|
39
|
+
@s3_service.put_object(@bucket, object)
|
40
|
+
end
|
41
|
+
|
42
|
+
def get(filename)
|
43
|
+
S3Object.new(@s3_service.get_object(@bucket, filename))
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# module Jar
|
2
|
+
# import org.jets3t.service.model.S3Object
|
3
|
+
# end
|
4
|
+
|
5
|
+
module JetS3t
|
6
|
+
class S3Object
|
7
|
+
def initialize(s3_object_impl)
|
8
|
+
@s3_object = s3_object_impl
|
9
|
+
end
|
10
|
+
|
11
|
+
def data
|
12
|
+
@s3_object.get_data_input_stream.to_io.read
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
metadata
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: jets3t-rb
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 1.0.0
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Daniel Gaiottino
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2011-07-11 00:00:00 Z
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: JRuby wrapper for JetS3t (http://jets3t.s3.amazonaws.com/)
|
17
|
+
email:
|
18
|
+
- daniel@burtcorp.com
|
19
|
+
executables: []
|
20
|
+
|
21
|
+
extensions: []
|
22
|
+
|
23
|
+
extra_rdoc_files: []
|
24
|
+
|
25
|
+
files:
|
26
|
+
- .gitignore
|
27
|
+
- README
|
28
|
+
- examples/s3.rb
|
29
|
+
- jets3t-rb.gemspec
|
30
|
+
- lib/ext/commons-codec-1.3.jar
|
31
|
+
- lib/ext/commons-httpclient-3.1.jar
|
32
|
+
- lib/ext/commons-logging-1.1.1.jar
|
33
|
+
- lib/ext/java-xmlbuilder-0.4.jar
|
34
|
+
- lib/ext/jets3t-0.8.1.jar
|
35
|
+
- lib/jets3t.rb
|
36
|
+
- lib/jets3t/aws_credentials.rb
|
37
|
+
- lib/jets3t/rest_s3_service.rb
|
38
|
+
- lib/jets3t/s3_bucket.rb
|
39
|
+
- lib/jets3t/s3_object.rb
|
40
|
+
- lib/jets3t/version.rb
|
41
|
+
homepage: http://github.com/gaiottino/jets3t-rb
|
42
|
+
licenses: []
|
43
|
+
|
44
|
+
post_install_message:
|
45
|
+
rdoc_options: []
|
46
|
+
|
47
|
+
require_paths:
|
48
|
+
- lib
|
49
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: "0"
|
55
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
56
|
+
none: false
|
57
|
+
requirements:
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: "0"
|
61
|
+
requirements: []
|
62
|
+
|
63
|
+
rubyforge_project: jets3t-rb
|
64
|
+
rubygems_version: 1.8.5
|
65
|
+
signing_key:
|
66
|
+
specification_version: 3
|
67
|
+
summary: JRuby wrapper for JetS3t
|
68
|
+
test_files: []
|
69
|
+
|