jets3t-rb 1.0.1 → 1.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.
- data/examples/s3.rb +9 -6
- data/jets3t-rb.gemspec +5 -5
- data/lib/jets3t/s3_bucket.rb +47 -3
- metadata +4 -2
data/examples/s3.rb
CHANGED
@@ -15,15 +15,18 @@ module JetS3t
|
|
15
15
|
test_bucket = s3_service.bucket(BUCKET_NAME)
|
16
16
|
|
17
17
|
# # simple string data
|
18
|
-
|
19
|
-
|
18
|
+
data = "Hello World!"
|
19
|
+
test_bucket.put('hello_world.txt', data)
|
20
20
|
|
21
|
+
# # file
|
21
22
|
FILE_NAME = '/tmp/hello_world.file'
|
22
|
-
PATH = 'one/two/hello_world.txt'
|
23
23
|
File.open(FILE_NAME, 'w') {|f| f.write('Hello World!') }
|
24
|
-
|
25
|
-
test_bucket.put(
|
24
|
+
data = File.new(FILE_NAME)
|
25
|
+
test_bucket.put(data)
|
26
26
|
|
27
|
-
object = test_bucket.get(
|
27
|
+
object = test_bucket.get('hello_world.txt')
|
28
|
+
p object.data
|
29
|
+
|
30
|
+
object = test_bucket.get('hello_world.file')
|
28
31
|
p object.data
|
29
32
|
end
|
data/jets3t-rb.gemspec
CHANGED
@@ -7,10 +7,10 @@ Dir['ext/*.jar'].each { |jar| require jar }
|
|
7
7
|
|
8
8
|
Gem::Specification.new do |s|
|
9
9
|
s.name = 'jets3t-rb'
|
10
|
-
s.version = '1.0.
|
10
|
+
s.version = '1.0.2'
|
11
11
|
s.platform = Gem::Platform::RUBY
|
12
|
-
s.authors = ['Daniel Gaiottino']
|
13
|
-
s.email = ['daniel@burtcorp.com']
|
12
|
+
s.authors = ['Daniel Gaiottino', 'David Tollmyr']
|
13
|
+
s.email = ['daniel@burtcorp.com', 'david@burtcorp.com']
|
14
14
|
s.homepage = 'http://github.com/gaiottino/jets3t-rb'
|
15
15
|
s.summary = %q{JRuby wrapper for JetS3t}
|
16
16
|
s.description = %q{JRuby wrapper for JetS3t (http://jets3t.s3.amazonaws.com/)}
|
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.rubyforge_project = 'jets3t-rb'
|
19
19
|
|
20
20
|
s.files = `git ls-files`.split("\n")
|
21
|
-
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
22
|
-
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
21
|
+
#s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
22
|
+
#s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
23
23
|
s.require_paths = %w(lib)
|
24
24
|
end
|
data/lib/jets3t/s3_bucket.rb
CHANGED
@@ -15,10 +15,16 @@ module JetS3t
|
|
15
15
|
class S3Bucket
|
16
16
|
def initialize(s3_service, name)
|
17
17
|
@s3_service = s3_service
|
18
|
+
@bucket_name = name
|
18
19
|
@bucket = @s3_service.get_bucket(name)
|
20
|
+
@stored_files = {}
|
21
|
+
list.each do | item |
|
22
|
+
@stored_files[item.get_name] = true
|
23
|
+
end
|
19
24
|
end
|
20
25
|
|
21
26
|
def put(path, file)
|
27
|
+
clean_path(path)
|
22
28
|
java_file = java.io.File.new(file.path)
|
23
29
|
input_stream = java.io.FileInputStream.new(java_file)
|
24
30
|
|
@@ -26,12 +32,50 @@ module JetS3t
|
|
26
32
|
object.set_data_input_stream(input_stream)
|
27
33
|
object.set_content_length(java_file.length)
|
28
34
|
object.set_content_type('application/octet-stream')
|
29
|
-
|
30
|
-
@
|
35
|
+
data = @s3_service.put_object(@bucket, object)
|
36
|
+
@stored_files[path] = true
|
37
|
+
end
|
38
|
+
|
39
|
+
def put_data(path, data)
|
40
|
+
clean_path(path)
|
41
|
+
object = Jar::S3Object.new(path, data)
|
42
|
+
object.set_content_length(data.size)
|
43
|
+
object.set_content_type('application/octet-stream')
|
44
|
+
data = @s3_service.put_object(@bucket, object)
|
45
|
+
@stored_files[path] = true
|
31
46
|
end
|
32
47
|
|
33
48
|
def get(filename)
|
34
|
-
|
49
|
+
clean_path(filename)
|
50
|
+
return nil unless @stored_files.has_key?(filename)
|
51
|
+
begin
|
52
|
+
S3Object.new(@s3_service.get_object(@bucket, filename))
|
53
|
+
rescue Exception => e
|
54
|
+
nil
|
55
|
+
end
|
35
56
|
end
|
57
|
+
|
58
|
+
def delete(filename)
|
59
|
+
clean_path(filename)
|
60
|
+
@s3_service.delete_object(@bucket, filename)
|
61
|
+
true
|
62
|
+
rescue Exception => e
|
63
|
+
false
|
64
|
+
end
|
65
|
+
|
66
|
+
def list
|
67
|
+
@bucket_list ||= @s3_service.list_objects(@bucket_name)
|
68
|
+
end
|
69
|
+
|
70
|
+
private
|
71
|
+
def has_object(path)
|
72
|
+
list.each do | item |
|
73
|
+
return item if item.get_name == path
|
74
|
+
end
|
75
|
+
end
|
76
|
+
# Removed leading /
|
77
|
+
def clean_path(path)
|
78
|
+
path.slice!(0) if path[0] == '/'
|
79
|
+
end
|
36
80
|
end
|
37
81
|
end
|
metadata
CHANGED
@@ -2,20 +2,22 @@
|
|
2
2
|
name: jets3t-rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.0.
|
5
|
+
version: 1.0.2
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Daniel Gaiottino
|
9
|
+
- David Tollmyr
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
13
|
|
13
|
-
date: 2011-
|
14
|
+
date: 2011-08-04 00:00:00 Z
|
14
15
|
dependencies: []
|
15
16
|
|
16
17
|
description: JRuby wrapper for JetS3t (http://jets3t.s3.amazonaws.com/)
|
17
18
|
email:
|
18
19
|
- daniel@burtcorp.com
|
20
|
+
- david@burtcorp.com
|
19
21
|
executables: []
|
20
22
|
|
21
23
|
extensions: []
|