jets3t-rb 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,2 @@
1
+ .DS_Store
2
+ .rvmrc
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,9 @@
1
+ module Jar
2
+ import org.jets3t.service.security.AWSCredentials
3
+ end
4
+
5
+ module JetS3t
6
+ class AWSCredentials < Jar::AWSCredentials
7
+
8
+ end
9
+ end
@@ -0,0 +1,11 @@
1
+ module Jar
2
+ import org.jets3t.service.impl.rest.httpclient.RestS3Service
3
+ end
4
+
5
+ module JetS3t
6
+ class RestS3Service < Jar::RestS3Service
7
+ def bucket(name)
8
+ S3Bucket.new(self, name)
9
+ end
10
+ end
11
+ end
@@ -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
@@ -0,0 +1,5 @@
1
+ # encoding: utf-8
2
+
3
+ module JetS3t
4
+ VERSION = '1.0.0'
5
+ 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
+