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.
@@ -15,15 +15,18 @@ module JetS3t
15
15
  test_bucket = s3_service.bucket(BUCKET_NAME)
16
16
 
17
17
  # # simple string data
18
- # data = "Hello World!"
19
- # test_bucket.put('test/hello/world/hello_world.txt', data)
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
- file = File.new(FILE_NAME)
25
- test_bucket.put(PATH, file)
24
+ data = File.new(FILE_NAME)
25
+ test_bucket.put(data)
26
26
 
27
- object = test_bucket.get(PATH)
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
@@ -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.1'
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
@@ -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
- @s3_service.put_object(@bucket, object)
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
- S3Object.new(@s3_service.get_object(@bucket, filename))
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.1
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-07-12 00:00:00 Z
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: []