aws 2.4.5 → 2.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. data/README.markdown +9 -75
  2. data/lib/acf/acf_interface.rb +6 -4
  3. data/lib/aws.rb +2 -1
  4. data/lib/awsbase/awsbase.rb +98 -65
  5. data/lib/awsbase/errors.rb +9 -5
  6. data/lib/awsbase/parsers.rb +226 -226
  7. data/lib/awsbase/utils.rb +255 -207
  8. data/lib/ec2/ec2.rb +243 -105
  9. data/lib/ec2/mon_interface.rb +2 -1
  10. data/lib/iam/iam.rb +31 -25
  11. data/lib/right_aws.rb +1 -1
  12. data/lib/s3/bucket.rb +7 -8
  13. data/lib/s3/grantee.rb +238 -238
  14. data/lib/s3/key.rb +281 -281
  15. data/lib/s3/s3.rb +2 -1
  16. data/lib/s3/s3_interface.rb +45 -35
  17. data/lib/sdb/active_sdb.rb +19 -22
  18. data/lib/sdb/sdb_interface.rb +4 -5
  19. data/lib/ses/ses.rb +123 -0
  20. data/lib/sqs/sqs.rb +5 -0
  21. data/lib/sqs/sqs_interface.rb +3 -3
  22. metadata +53 -104
  23. data/lib/awsbase/support.rb +0 -142
  24. data/test/acf/test_acf.rb +0 -148
  25. data/test/acf/test_helper.rb +0 -2
  26. data/test/ec2/test_ec2.rb +0 -205
  27. data/test/ec2/test_helper.rb +0 -2
  28. data/test/ec2/test_mon.rb +0 -17
  29. data/test/elb/test_elb.rb +0 -51
  30. data/test/http_connection.rb +0 -87
  31. data/test/iam/test_iam.rb +0 -36
  32. data/test/rds/test_rds.rb +0 -181
  33. data/test/s3/s3_test_base.rb +0 -23
  34. data/test/s3/test_helper.rb +0 -3
  35. data/test/s3/test_s3.rb +0 -162
  36. data/test/s3/test_s3_class.rb +0 -179
  37. data/test/s3/test_s3_rights.rb +0 -139
  38. data/test/s3/test_s3_stubbed.rb +0 -97
  39. data/test/sdb/test_active_sdb.rb +0 -338
  40. data/test/sdb/test_helper.rb +0 -3
  41. data/test/sdb/test_sdb.rb +0 -220
  42. data/test/sqs/test_helper.rb +0 -2
  43. data/test/sqs/test_sqs.rb +0 -232
  44. data/test/test_credentials.rb +0 -54
  45. data/test/ts_right_aws.rb +0 -13
@@ -1,23 +0,0 @@
1
- class S3TestBase < Test::Unit::TestCase
2
-
3
- RIGHT_OBJECT_TEXT = 'Right test message'
4
-
5
- def setup
6
- TestCredentials.get_credentials
7
- @s3 = Aws::S3Interface.new(TestCredentials.aws_access_key_id, TestCredentials.aws_secret_access_key)
8
- @bucket = TestCredentials.config['amazon']['my_prefix'] + '_awesome_test_bucket_000A1'
9
- @bucket2 = TestCredentials.config['amazon']['my_prefix'] + '_awesome_test_bucket_000A2'
10
- @key1 = 'test/woohoo1/'
11
- @key2 = 'test1/key/woohoo2'
12
- @key3 = 'test2/A%B@C_D&E?F+G=H"I'
13
- @key1_copy = 'test/woohoo1_2'
14
- @key1_new_name = 'test/woohoo1_3'
15
- @key2_new_name = 'test1/key/woohoo2_new'
16
- @s = Aws::S3.new(TestCredentials.aws_access_key_id, TestCredentials.aws_secret_access_key)
17
- end
18
-
19
- def teardown
20
-
21
- end
22
-
23
- end
@@ -1,3 +0,0 @@
1
- require 'test/unit'
2
- require File.dirname(__FILE__) + '/../../lib/aws'
3
-
@@ -1,162 +0,0 @@
1
- require File.dirname(__FILE__) + '/test_helper.rb'
2
- require_relative 's3_test_base'
3
- require File.dirname(__FILE__) + '/../test_credentials.rb'
4
-
5
- class TestS3 < S3TestBase
6
-
7
- #---------------------------
8
- # Aws::S3Interface
9
- #---------------------------
10
-
11
- def test_01_create_bucket
12
- assert @s3.create_bucket(@bucket), 'Create_bucket fail'
13
- end
14
-
15
- def test_02_list_all_my_buckets
16
- assert @s3.list_all_my_buckets.map { |bucket| bucket[:name] }.include?(@bucket), "#{@bucket} must exist in bucket list"
17
- end
18
-
19
- def test_03_list_empty_bucket
20
- assert_equal 0, @s3.list_bucket(@bucket).size, "#{@bucket} isn't empty, arrgh!"
21
- end
22
-
23
- def test_04_put
24
- assert @s3.put(@bucket, @key1, RIGHT_OBJECT_TEXT, 'x-amz-meta-family'=>'Woohoo1!'), 'Put bucket fail'
25
- assert @s3.put(@bucket, @key2, RIGHT_OBJECT_TEXT, 'x-amz-meta-family'=>'Woohoo2!'), 'Put bucket fail'
26
- assert @s3.put(@bucket, @key3, RIGHT_OBJECT_TEXT, 'x-amz-meta-family'=>'Woohoo3!'), 'Put bucket fail'
27
- end
28
-
29
- def test_04a_put
30
- super_big_string = ""
31
- 1000000.times {|i| super_big_string << "abcde" }
32
- assert @s3.put(@bucket, "super_big", super_big_string), 'Put bucket fail'
33
- end
34
-
35
- def test_05_get_and_get_object
36
- assert_raise(Aws::AwsError) { @s3.get(@bucket, 'undefined/key') }
37
- data1 = @s3.get(@bucket, @key1)
38
- assert_equal RIGHT_OBJECT_TEXT, data1[:object], "Object text must be equal to '#{RIGHT_OBJECT_TEXT}'"
39
- assert_equal RIGHT_OBJECT_TEXT, @s3.get_object(@bucket, @key1), "Get_object text must return '#{RIGHT_OBJECT_TEXT}'"
40
- assert_equal 'Woohoo1!', data1[:headers]['x-amz-meta-family'], "x-amz-meta-family header must be equal to 'Woohoo1!'"
41
- assert_equal RIGHT_OBJECT_TEXT, @s3.get_object(@bucket, @key3), "Get_object text must return '#{RIGHT_OBJECT_TEXT}'"
42
- end
43
-
44
- def test_06_head
45
- assert_equal 'Woohoo1!', @s3.head(@bucket, @key1)['x-amz-meta-family'], "x-amz-meta-family header must be equal to 'Woohoo1!'"
46
- end
47
-
48
-
49
- def test_07_streaming_get
50
- resp = String.new
51
- assert_raise(Aws::AwsError) do
52
- @s3.get(@bucket, 'undefined/key') do |chunk|
53
- resp += chunk
54
- end
55
- end
56
-
57
- resp = String.new
58
- data1 = @s3.get(@bucket, @key1) do |chunk|
59
- resp += chunk
60
- end
61
- assert_equal RIGHT_OBJECT_TEXT, resp, "Object text must be equal to '#{RIGHT_OBJECT_TEXT}'"
62
- assert_equal @s3.get_object(@bucket, @key1), resp, "Streaming iface must return same as non-streaming"
63
- assert_equal 'Woohoo1!', data1[:headers]['x-amz-meta-family'], "x-amz-meta-family header must be equal to 'Woohoo1!'"
64
- end
65
-
66
- def test_08_keys
67
- keys = @s3.list_bucket(@bucket).map { |b| b[:key] }
68
- assert_equal keys.size, 3, "There should be 3 keys"
69
- assert(keys.include?(@key1))
70
- assert(keys.include?(@key2))
71
- assert(keys.include?(@key3))
72
- end
73
-
74
- def test_09_copy_key
75
- #--- test COPY
76
- # copy a key
77
- assert @s3.copy(@bucket, @key1, @bucket, @key1_copy)
78
- # check it was copied well
79
- assert_equal RIGHT_OBJECT_TEXT, @s3.get_object(@bucket, @key1_copy), "copied object must have the same data"
80
- # check meta-headers were copied
81
- headers = @s3.head(@bucket, @key1_copy)
82
- assert_equal 'Woohoo1!', headers['x-amz-meta-family'], "x-amz-meta-family header must be equal to 'Woohoo1!'"
83
- #--- test REPLACE
84
- assert @s3.copy(@bucket, @key1, @bucket, @key1_copy, :replace, 'x-amz-meta-family' => 'oooops!')
85
- # check it was copied well
86
- assert_equal RIGHT_OBJECT_TEXT, @s3.get_object(@bucket, @key1_copy), "copied object must have the same data"
87
- # check meta-headers were overwrittenn
88
- headers = @s3.head(@bucket, @key1_copy)
89
- assert_equal 'oooops!', headers['x-amz-meta-family'], "x-amz-meta-family header must be equal to 'oooops!'"
90
- end
91
-
92
- def test_10_move_key
93
- # move a key
94
- assert @s3.move(@bucket, @key1, @bucket, @key1_new_name)
95
- # check it's data was moved correctly
96
- assert_equal RIGHT_OBJECT_TEXT, @s3.get_object(@bucket, @key1_new_name), "moved object must have the same data"
97
- # check meta-headers were moved
98
- headers = @s3.head(@bucket, @key1_new_name)
99
- assert_equal 'Woohoo1!', headers['x-amz-meta-family'], "x-amz-meta-family header must be equal to 'Woohoo1!'"
100
- # check the original key is not exists any more
101
- keys = @s3.list_bucket(@bucket).map { |b| b[:key] }
102
- assert(!keys.include?(@key1))
103
- end
104
-
105
- def test_11_rename_key
106
- # rename a key
107
- assert @s3.rename(@bucket, @key2, @key2_new_name)
108
- # check the new key data
109
- assert_equal RIGHT_OBJECT_TEXT, @s3.get_object(@bucket, @key2_new_name), "moved object must have the same data"
110
- # check meta-headers
111
- headers = @s3.head(@bucket, @key2_new_name)
112
- assert_equal 'Woohoo2!', headers['x-amz-meta-family'], "x-amz-meta-family header must be equal to 'Woohoo2!'"
113
- # check the original key is not exists any more
114
- keys = @s3.list_bucket(@bucket).map { |b| b[:key] }
115
- assert(!keys.include?(@key2))
116
- end
117
-
118
- def test_12_retrieve_object
119
- assert_raise(Aws::AwsError) { @s3.retrieve_object(:bucket => @bucket, :key => 'undefined/key') }
120
- data1 = @s3.retrieve_object(:bucket => @bucket, :key => @key1_new_name)
121
- assert_equal RIGHT_OBJECT_TEXT, data1[:object], "Object text must be equal to '#{RIGHT_OBJECT_TEXT}'"
122
- assert_equal 'Woohoo1!', data1[:headers]['x-amz-meta-family'], "x-amz-meta-family header must be equal to 'Woohoo1!'"
123
- end
124
-
125
- def test_13_delete_folder
126
- assert_equal 1, @s3.delete_folder(@bucket, 'test').size, "Only one key(#{@key1}) must be deleted!"
127
- end
128
-
129
- # idle timeout is 20 seconds
130
- # https://forums.aws.amazon.com/thread.jspa?threadID=58038
131
- def test_14_idle_timeout
132
- @s3 = Aws::S3Interface.new(TestCredentials.aws_access_key_id, TestCredentials.aws_secret_access_key,
133
- :connection_mode=>:single)
134
- # Disable connection retrying
135
- Aws::AWSErrorHandler.close_on_error = false
136
- assert @s3.put(@bucket, @key1, RIGHT_OBJECT_TEXT, 'x-amz-meta-family'=>'Woohoo1!'), 'Put bucket fail'
137
- sleep 300
138
- assert_raises Aws::AwsError do
139
- @s3.put(@bucket, @key2, RIGHT_OBJECT_TEXT, 'x-amz-meta-family'=>'Woohoo1!')
140
- end
141
-
142
- # now try again with retry mode
143
- @s3 = Aws::S3Interface.new(TestCredentials.aws_access_key_id, TestCredentials.aws_secret_access_key,
144
- :connection_mode=>:single)
145
- Aws::AWSErrorHandler.close_on_error = true
146
- assert @s3.put(@bucket, @key1, RIGHT_OBJECT_TEXT, 'x-amz-meta-family'=>'Woohoo1!'), 'Put bucket fail'
147
- sleep 30
148
- assert @s3.put(@bucket, @key2, RIGHT_OBJECT_TEXT, 'x-amz-meta-family'=>'Woohoo1!'), 'Put bucket fail'
149
-
150
-
151
- end
152
-
153
- def test_99_delete_bucket
154
- assert_raise(Aws::AwsError) { @s3.delete_bucket(@bucket) }
155
- assert @s3.clear_bucket(@bucket), 'Clear_bucket fail'
156
- assert_equal 0, @s3.list_bucket(@bucket).size, 'Bucket must be empty'
157
- assert @s3.delete_bucket(@bucket)
158
- assert !@s3.list_all_my_buckets.map { |bucket| bucket[:name] }.include?(@bucket), "#{@bucket} must not exist"
159
- end
160
-
161
-
162
- end
@@ -1,179 +0,0 @@
1
- # encoding: utf-8
2
- require File.dirname(__FILE__) + '/test_helper.rb'
3
- require_relative 's3_test_base'
4
- require File.dirname(__FILE__) + '/../test_credentials.rb'
5
-
6
- class TestS3Class < S3TestBase
7
-
8
- #---------------------------
9
- # Aws::S3 classes
10
- #---------------------------
11
-
12
- def test_20_s3
13
- # create bucket
14
- bucket = @s.bucket(@bucket, true)
15
- assert bucket
16
- # check that the bucket exists
17
- assert @s.buckets.map { |b| b.name }.include?(@bucket)
18
- # delete bucket
19
- assert bucket.clear
20
- assert bucket.delete
21
- end
22
-
23
- def test_21_bucket_create_put_get_key
24
- bucket = Aws::S3::Bucket.create(@s, @bucket, true)
25
- # check that the bucket exists
26
- assert @s.buckets.map { |b| b.name }.include?(@bucket)
27
- assert bucket.keys.empty?, "keys are not empty: " + bucket.keys.inspect
28
- # put data
29
- assert bucket.put(@key3, RIGHT_OBJECT_TEXT, {'family'=>'123456'})
30
- # get data and compare
31
- assert_equal RIGHT_OBJECT_TEXT, bucket.get(@key3)
32
- # get key object
33
- key = bucket.key(@key3, true)
34
- assert_equal Aws::S3::Key, key.class
35
- assert key.exists?
36
- assert_equal '123456', key.meta_headers['family']
37
- end
38
-
39
- def test_22_bucket_put_big_with_multibyte_chars
40
- bucket = Aws::S3::Bucket.create(@s, @bucket, true)
41
- super_big_string = ""
42
- 10000.times { |i| super_big_string << "abcde Café" }
43
- # this string has multibye values just to mess things up abit.
44
- puts 'String made, putting...'
45
- puts "#{super_big_string.size} - #{super_big_string.bytesize}"
46
- assert bucket.put("super_big", super_big_string), 'Put bucket fail'
47
-
48
- got = bucket.get("super_big")
49
- puts 'got.class=' + got.class.name
50
- assert_equal(super_big_string, got, "not the same yo")
51
- end
52
-
53
- def test_23_put_strange_things
54
- bucket = Aws::S3::Bucket.create(@s, @bucket, true)
55
-
56
- # this is kinda bad, you put a nil, but get an empty string back
57
- assert bucket.put("strange", nil), 'Put bucket fail'
58
- got = bucket.get("strange")
59
- assert_equal("", got)
60
-
61
- x = "\xE2\x80\x99s Café"
62
- puts "#{x.size} - #{x.bytesize}"
63
- assert bucket.put("multibye", x)
64
-
65
-
66
-
67
- end
68
-
69
- def test_30_keys
70
- bucket = Aws::S3::Bucket.create(@s, @bucket, false)
71
- # create first key
72
- key3 = Aws::S3::Key.create(bucket, @key3)
73
- key3.refresh
74
- assert key3.exists?
75
- assert_equal '123456', key3.meta_headers['family']
76
- # create second key
77
- key2 = Aws::S3::Key.create(bucket, @key2)
78
- assert !key2.refresh
79
- assert !key2.exists?
80
- assert_raise(Aws::AwsError) { key2.head }
81
- # store key
82
- key2.meta_headers = {'family'=>'111222333'}
83
- assert key2.put(RIGHT_OBJECT_TEXT)
84
- # make sure that the key exists
85
- assert key2.refresh
86
- assert key2.exists?
87
- assert key2.head
88
- # get its data
89
- assert_equal RIGHT_OBJECT_TEXT, key2.get
90
- # drop key
91
- assert key2.delete
92
- assert !key2.exists?
93
- end
94
-
95
- def test_31_rename_key
96
- bucket = Aws::S3::Bucket.create(@s, @bucket, false)
97
- # -- 1 -- (key based rename)
98
- # create a key
99
- key = bucket.key('test/copy/1')
100
- key.put(RIGHT_OBJECT_TEXT)
101
- original_key = key.clone
102
- assert key.exists?, "'test/copy/1' should exist"
103
- # rename it
104
- key.rename('test/copy/2')
105
- assert_equal 'test/copy/2', key.name
106
- assert key.exists?, "'test/copy/2' should exist"
107
- # the original key should not exist
108
- assert !original_key.exists?, "'test/copy/1' should not exist"
109
- # -- 2 -- (bucket based rename)
110
- bucket.rename_key('test/copy/2', 'test/copy/3')
111
- assert bucket.key('test/copy/3').exists?, "'test/copy/3' should exist"
112
- assert !bucket.key('test/copy/2').exists?, "'test/copy/2' should not exist"
113
- end
114
-
115
- def test_32_copy_key
116
- bucket = Aws::S3::Bucket.create(@s, @bucket, false)
117
- # -- 1 -- (key based copy)
118
- # create a key
119
- key = bucket.key('test/copy/10')
120
- key.put(RIGHT_OBJECT_TEXT)
121
- # make copy
122
- new_key = key.copy('test/copy/11')
123
- # make sure both the keys exist and have a correct data
124
- assert key.exists?, "'test/copy/10' should exist"
125
- assert new_key.exists?, "'test/copy/11' should exist"
126
- assert_equal RIGHT_OBJECT_TEXT, key.get
127
- assert_equal RIGHT_OBJECT_TEXT, new_key.get
128
- # -- 2 -- (bucket based copy)
129
- bucket.copy_key('test/copy/11', 'test/copy/12')
130
- assert bucket.key('test/copy/11').exists?, "'test/copy/11' should exist"
131
- assert bucket.key('test/copy/12').exists?, "'test/copy/12' should exist"
132
- assert_equal RIGHT_OBJECT_TEXT, bucket.key('test/copy/11').get
133
- assert_equal RIGHT_OBJECT_TEXT, bucket.key('test/copy/12').get
134
- end
135
-
136
- def test_33_move_key
137
- bucket = Aws::S3::Bucket.create(@s, @bucket, false)
138
- # -- 1 -- (key based copy)
139
- # create a key
140
- key = bucket.key('test/copy/20')
141
- key.put(RIGHT_OBJECT_TEXT)
142
- # move
143
- new_key = key.move('test/copy/21')
144
- # make sure both the keys exist and have a correct data
145
- assert !key.exists?, "'test/copy/20' should not exist"
146
- assert new_key.exists?, "'test/copy/21' should exist"
147
- assert_equal RIGHT_OBJECT_TEXT, new_key.get
148
- # -- 2 -- (bucket based copy)
149
- bucket.copy_key('test/copy/21', 'test/copy/22')
150
- assert bucket.key('test/copy/21').exists?, "'test/copy/21' should not exist"
151
- assert bucket.key('test/copy/22').exists?, "'test/copy/22' should exist"
152
- assert_equal RIGHT_OBJECT_TEXT, bucket.key('test/copy/22').get
153
- end
154
-
155
- def test_40_save_meta
156
- bucket = Aws::S3::Bucket.create(@s, @bucket, false)
157
- # create a key
158
- key = bucket.key('test/copy/30')
159
- key.put(RIGHT_OBJECT_TEXT)
160
- assert key.meta_headers.blank?
161
- # store some meta keys
162
- meta = {'family' => 'oops', 'race' => 'troll'}
163
- assert_equal meta, key.save_meta(meta)
164
- # reload meta
165
- assert_equal meta, key.reload_meta
166
- end
167
-
168
- def test_60_clear_delete
169
- bucket = Aws::S3::Bucket.create(@s, @bucket, false)
170
- # add another key
171
- bucket.put(@key2, RIGHT_OBJECT_TEXT)
172
- # delete 'folder'
173
- assert_equal 1, bucket.delete_folder(@key1).size
174
- # delete
175
- assert_raise(Aws::AwsError) { bucket.delete }
176
- assert bucket.delete(true)
177
- end
178
-
179
- end
@@ -1,139 +0,0 @@
1
- require File.dirname(__FILE__) + '/test_helper.rb'
2
- require_relative 's3_test_base'
3
- require File.dirname(__FILE__) + '/../test_credentials.rb'
4
-
5
- class TestS3Rights < S3TestBase
6
- # Grantees
7
-
8
- def test_30_create_bucket
9
- bucket = @s.bucket(@bucket, true, 'public-read')
10
- assert bucket
11
- end
12
-
13
- def test_31_list_grantees
14
- bucket = Aws::S3::Bucket.create(@s, @bucket, false)
15
- # get grantees list
16
- grantees = bucket.grantees
17
- # check that the grantees count equal to 2 (root, AllUsers)
18
- assert_equal 2, grantees.size
19
- end
20
-
21
- def test_32_grant_revoke_drop
22
- bucket = Aws::S3::Bucket.create(@s, @bucket, false)
23
- # Take 'AllUsers' grantee
24
- grantee = Aws::S3::Grantee.new(bucket, 'http://acs.amazonaws.com/groups/global/AllUsers')
25
- # Check exists?
26
- assert grantee.exists?
27
- # Add grant as String
28
- assert grantee.grant('WRITE')
29
- # Add grants as Array
30
- assert grantee.grant(['READ_ACP', 'WRITE_ACP'])
31
- # Check perms count
32
- assert_equal 4, grantee.perms.size
33
- # revoke 'WRITE_ACP'
34
- assert grantee.revoke('WRITE_ACP')
35
- # Check manual perm removal method
36
- grantee.perms -= ['READ_ACP']
37
- grantee.apply
38
- assert_equal 2, grantee.perms.size
39
- # Check grantee removal if it has no permissions
40
- assert grantee.perms = []
41
- assert grantee.apply
42
- assert !grantee.exists?
43
- # Check multiple perms assignment
44
- assert grantee.grant('FULL_CONTROL', 'READ', 'WRITE')
45
- assert_equal ['FULL_CONTROL', 'READ', 'WRITE'].sort, grantee.perms.sort
46
- # Check multiple perms removal
47
- assert grantee.revoke('FULL_CONTROL', 'WRITE')
48
- assert_equal ['READ'], grantee.perms
49
- # check 'Drop' method
50
- assert grantee.drop
51
- assert !grantee.exists?
52
- assert_equal 1, bucket.grantees.size
53
- # Delete bucket
54
- bucket.delete(true)
55
- end
56
-
57
- def test_33_key_grantees
58
- # Create bucket
59
- bucket = @s.bucket(@bucket, true)
60
- # Create key
61
- key = bucket.key(@key1)
62
- assert key.put(RIGHT_OBJECT_TEXT, 'public-read')
63
- # Get grantees list (must be == 2)
64
- grantees = key.grantees
65
- assert grantees
66
- assert_equal 2, grantees.size
67
- # Take one of grantees and give him 'Write' perms
68
- grantee = grantees[0]
69
- assert grantee.grant('WRITE')
70
- # Drop grantee
71
- assert grantee.drop
72
- # Drop bucket
73
- bucket.delete(true)
74
- end
75
-
76
- def test_34_bucket_create_put_with_perms
77
- bucket = Aws::S3::Bucket.create(@s, @bucket, true)
78
- # check that the bucket exists
79
- assert @s.buckets.map { |b| b.name }.include?(@bucket)
80
- assert bucket.keys.empty?
81
- # put data (with canned ACL)
82
- assert bucket.put(@key1, RIGHT_OBJECT_TEXT, {'family'=>'123456'}, "public-read")
83
- # get data and compare
84
- assert_equal RIGHT_OBJECT_TEXT, bucket.get(@key1)
85
- # get key object
86
- key = bucket.key(@key1, true)
87
- assert_equal Aws::S3::Key, key.class
88
- assert key.exists?
89
- assert_equal '123456', key.meta_headers['family']
90
- end
91
-
92
- def test_35_key_put_with_perms
93
- bucket = Aws::S3::Bucket.create(@s, @bucket, false)
94
- # create first key
95
- key1 = Aws::S3::Key.create(bucket, @key1)
96
- key1.refresh
97
- assert key1.exists?
98
- assert key1.put(RIGHT_OBJECT_TEXT, "public-read")
99
- # get its data
100
- assert_equal RIGHT_OBJECT_TEXT, key1.get
101
- # drop key
102
- assert key1.delete
103
- assert !key1.exists?
104
- end
105
-
106
- def test_36_set_amazon_problems
107
- original_problems = Aws::S3Interface.amazon_problems
108
- assert(original_problems.length > 0)
109
- Aws::S3Interface.amazon_problems= original_problems << "A New Problem"
110
- new_problems = Aws::S3Interface.amazon_problems
111
- assert_equal(new_problems, original_problems)
112
-
113
- Aws::S3Interface.amazon_problems= nil
114
- assert_nil(Aws::S3Interface.amazon_problems)
115
- end
116
-
117
- def test_37_access_logging
118
- bucket = Aws::S3::Bucket.create(@s, @bucket, false)
119
- targetbucket = Aws::S3::Bucket.create(@s, @bucket2, true)
120
- # Take 'AllUsers' grantee
121
- grantee = Aws::S3::Grantee.new(targetbucket, 'http://acs.amazonaws.com/groups/s3/LogDelivery')
122
-
123
- assert grantee.grant(['READ_ACP', 'WRITE'])
124
-
125
- assert bucket.enable_logging(:targetbucket => targetbucket, :targetprefix => "loggylogs/")
126
-
127
- assert_equal(bucket.logging_info, {:enabled => true, :targetbucket => @bucket2, :targetprefix => "loggylogs/"})
128
-
129
- assert bucket.disable_logging
130
-
131
- # check 'Drop' method
132
- assert grantee.drop
133
-
134
- # Delete bucket
135
- bucket.delete(true)
136
- targetbucket.delete(true)
137
- end
138
-
139
- end