s33r 0.3.1 → 0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (120) hide show
  1. data/examples/cli/acl_x.rb +41 -0
  2. data/examples/cli/logging_x.rb +20 -0
  3. data/{bin → examples/cli}/s3cli.rb +13 -20
  4. data/examples/fores33r/README +183 -0
  5. data/examples/fores33r/Rakefile +10 -0
  6. data/examples/fores33r/app/controllers/application.rb +4 -0
  7. data/examples/fores33r/app/controllers/browser_controller.rb +68 -0
  8. data/examples/fores33r/app/helpers/application_helper.rb +8 -0
  9. data/examples/fores33r/app/views/browser/index.rhtml +14 -0
  10. data/examples/fores33r/app/views/browser/show_bucket.rhtml +14 -0
  11. data/examples/fores33r/app/views/layouts/application.rhtml +29 -0
  12. data/examples/fores33r/config/boot.rb +44 -0
  13. data/examples/fores33r/config/database.yml +35 -0
  14. data/examples/fores33r/config/environment.rb +64 -0
  15. data/examples/fores33r/config/environments/development.rb +21 -0
  16. data/examples/fores33r/config/environments/production.rb +18 -0
  17. data/examples/fores33r/config/environments/test.rb +19 -0
  18. data/examples/fores33r/config/routes.rb +23 -0
  19. data/examples/fores33r/doc/README_FOR_APP +2 -0
  20. data/examples/fores33r/log/development.log +5507 -0
  21. data/examples/fores33r/log/production.log +0 -0
  22. data/examples/fores33r/log/server.log +0 -0
  23. data/examples/fores33r/log/test.log +0 -0
  24. data/examples/fores33r/public/404.html +8 -0
  25. data/examples/fores33r/public/500.html +8 -0
  26. data/examples/fores33r/public/dispatch.cgi +10 -0
  27. data/examples/fores33r/public/dispatch.fcgi +24 -0
  28. data/examples/fores33r/public/dispatch.rb +10 -0
  29. data/examples/fores33r/public/favicon.ico +0 -0
  30. data/examples/fores33r/public/images/rails.png +0 -0
  31. data/examples/fores33r/public/javascripts/application.js +2 -0
  32. data/examples/fores33r/public/javascripts/controls.js +815 -0
  33. data/examples/fores33r/public/javascripts/dragdrop.js +913 -0
  34. data/examples/fores33r/public/javascripts/effects.js +958 -0
  35. data/examples/fores33r/public/javascripts/prototype.js +2006 -0
  36. data/examples/fores33r/public/robots.txt +1 -0
  37. data/examples/fores33r/public/stylesheets/core.css +37 -0
  38. data/examples/fores33r/script/about +3 -0
  39. data/examples/fores33r/script/breakpointer +3 -0
  40. data/examples/fores33r/script/console +3 -0
  41. data/examples/fores33r/script/destroy +3 -0
  42. data/examples/fores33r/script/generate +3 -0
  43. data/examples/fores33r/script/performance/benchmarker +3 -0
  44. data/examples/fores33r/script/performance/profiler +3 -0
  45. data/examples/fores33r/script/plugin +3 -0
  46. data/examples/fores33r/script/process/reaper +3 -0
  47. data/examples/fores33r/script/process/spawner +3 -0
  48. data/examples/fores33r/script/runner +3 -0
  49. data/examples/fores33r/script/server +3 -0
  50. data/examples/fores33r/test/test_helper.rb +28 -0
  51. data/examples/fores33r/tmp/sessions/ruby_sess.39d37e054d21d545 +0 -0
  52. data/examples/fores33r/tmp/sessions/ruby_sess.acf71fc73aa74983 +0 -0
  53. data/examples/fores33r/tmp/sessions/ruby_sess.c1697b7d6670f3cd +0 -0
  54. data/examples/s3.yaml +11 -0
  55. data/html/classes/Net/HTTPGenericRequest.html +32 -32
  56. data/html/classes/Net/HTTPResponse.html +20 -19
  57. data/html/classes/S33r.html +422 -190
  58. data/html/classes/S33r/BucketListing.html +107 -70
  59. data/html/classes/S33r/Client.html +888 -414
  60. data/html/classes/S33r/LoggingResource.html +222 -0
  61. data/html/classes/S33r/NamedBucket.html +149 -150
  62. data/html/classes/S33r/OrderlyXmlMarkup.html +165 -0
  63. data/html/classes/S33r/S33rException.html +3 -0
  64. data/html/classes/S33r/S33rException/BucketNotLogTargetable.html +119 -0
  65. data/html/classes/S33r/S33rException/InvalidPermission.html +111 -0
  66. data/html/classes/S33r/S33rException/InvalidS3GroupType.html +111 -0
  67. data/html/classes/S33r/S3ACL.html +125 -0
  68. data/html/classes/S33r/S3ACL/ACLDoc.html +521 -0
  69. data/html/classes/S33r/{S3User.html → S3ACL/AmazonCustomer.html} +27 -30
  70. data/html/classes/S33r/S3ACL/CanonicalUser.html +212 -0
  71. data/html/classes/S33r/S3ACL/Grant.html +403 -0
  72. data/html/classes/S33r/S3ACL/Grantee.html +239 -0
  73. data/html/classes/S33r/S3ACL/Group.html +178 -0
  74. data/html/classes/S33r/S3Object.html +53 -50
  75. data/html/classes/S33r/Sync.html +6 -6
  76. data/html/classes/XML.html +4 -2
  77. data/html/created.rid +1 -1
  78. data/html/files/README_txt.html +82 -28
  79. data/html/files/lib/s33r/bucket_listing_rb.html +1 -8
  80. data/html/files/lib/s33r/builder_rb.html +108 -0
  81. data/html/files/lib/s33r/client_rb.html +2 -1
  82. data/html/files/lib/s33r/core_rb.html +2 -1
  83. data/html/files/lib/s33r/libxml_extensions_rb.html +1 -1
  84. data/html/files/lib/s33r/logging_rb.html +109 -0
  85. data/html/files/lib/s33r/named_bucket_rb.html +1 -1
  86. data/html/files/lib/s33r/s33r_exception_rb.html +1 -1
  87. data/html/files/lib/s33r/s33r_http_rb.html +1 -1
  88. data/html/files/lib/s33r/s3_acl_rb.html +109 -0
  89. data/html/fr_class_index.html +12 -1
  90. data/html/fr_file_index.html +3 -0
  91. data/html/fr_method_index.html +101 -57
  92. data/lib/s33r/bucket_listing.rb +21 -22
  93. data/lib/s33r/builder.rb +20 -0
  94. data/lib/s33r/client.rb +240 -42
  95. data/lib/s33r/core.rb +106 -36
  96. data/lib/s33r/libxml_extensions.rb +2 -2
  97. data/lib/s33r/logging.rb +43 -0
  98. data/lib/s33r/named_bucket.rb +16 -17
  99. data/lib/s33r/s33r_exception.rb +11 -0
  100. data/lib/s33r/s33r_http.rb +2 -1
  101. data/lib/s33r/s3_acl.rb +337 -0
  102. data/test/cases/spec_acl.rb +146 -0
  103. data/test/cases/spec_all_buckets.rb +28 -0
  104. data/test/cases/spec_bucket_listing.rb +2 -2
  105. data/test/cases/spec_client.rb +45 -18
  106. data/test/cases/spec_core.rb +0 -9
  107. data/test/cases/spec_namedbucket.rb +3 -3
  108. data/test/files/acl.xml +47 -0
  109. data/test/files/acl_grant1.xml +7 -0
  110. data/test/files/acl_grant2.xml +6 -0
  111. data/test/files/acl_grant3.xml +6 -0
  112. data/test/files/acl_grant4.xml +6 -0
  113. data/test/files/all_buckets.xml +21 -0
  114. data/test/files/bucket_listing.xml +138 -1
  115. data/test/files/client_config.yml +0 -1
  116. data/test/files/logging_acl.xml +34 -0
  117. data/test/files/namedbucket_config.yml +1 -5
  118. data/test/files/namedbucket_config2.yml +1 -5
  119. data/test/test_setup.rb +1 -0
  120. metadata +132 -7
@@ -92,11 +92,12 @@ Object representation of the content of a bucket.
92
92
  <h3 class="section-bar">Methods</h3>
93
93
 
94
94
  <div class="name-list">
95
- <a href="#M000079">[]</a>&nbsp;&nbsp;
96
- <a href="#M000076">new</a>&nbsp;&nbsp;
97
- <a href="#M000078">parse_listing</a>&nbsp;&nbsp;
98
- <a href="#M000080">pretty</a>&nbsp;&nbsp;
99
- <a href="#M000077">set_listing_xml</a>&nbsp;&nbsp;
95
+ <a href="#M000111">[]</a>&nbsp;&nbsp;
96
+ <a href="#M000110">last_key</a>&nbsp;&nbsp;
97
+ <a href="#M000107">new</a>&nbsp;&nbsp;
98
+ <a href="#M000109">parse_listing</a>&nbsp;&nbsp;
99
+ <a href="#M000112">pretty</a>&nbsp;&nbsp;
100
+ <a href="#M000108">set_listing_xml</a>&nbsp;&nbsp;
100
101
  </div>
101
102
  </div>
102
103
 
@@ -139,6 +140,14 @@ Hash of objects in this bucket, keyed by their S3 keys.
139
140
  <td class="context-item-value">&nbsp;[R]&nbsp;</td>
140
141
  <td class="context-item-desc"></td>
141
142
  </tr>
143
+ <tr class="top-aligned-row context-row">
144
+ <td class="context-item-name">last_key</td>
145
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
146
+ <td class="context-item-desc">
147
+ The last key listed in this <a href="BucketListing.html">BucketListing</a>.
148
+
149
+ </td>
150
+ </tr>
142
151
  <tr class="top-aligned-row context-row">
143
152
  <td class="context-item-name">marker</td>
144
153
  <td class="context-item-value">&nbsp;[R]&nbsp;</td>
@@ -181,11 +190,11 @@ listing.
181
190
  <div id="methods">
182
191
  <h3 class="section-bar">Public Class methods</h3>
183
192
 
184
- <div id="method-M000076" class="method-detail">
185
- <a name="M000076"></a>
193
+ <div id="method-M000107" class="method-detail">
194
+ <a name="M000107"></a>
186
195
 
187
196
  <div class="method-heading">
188
- <a href="#M000076" class="method-signature">
197
+ <a href="#M000107" class="method-signature">
189
198
  <span class="method-name">new</span><span class="method-args">(bucket_listing_xml, named_bucket=nil)</span>
190
199
  </a>
191
200
  </div>
@@ -207,8 +216,8 @@ objects to be easily deleted without having to create a new <a
207
216
  href="Client.html">Client</a> instance.
208
217
  </p>
209
218
  <p><a class="source-toggle" href="#"
210
- onclick="toggleCode('M000076-source');return false;">[Source]</a></p>
211
- <div class="method-source-code" id="M000076-source">
219
+ onclick="toggleCode('M000107-source');return false;">[Source]</a></p>
220
+ <div class="method-source-code" id="M000107-source">
212
221
  <pre>
213
222
  <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 27</span>
214
223
  27: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">bucket_listing_xml</span>, <span class="ruby-identifier">named_bucket</span>=<span class="ruby-keyword kw">nil</span>)
@@ -225,11 +234,11 @@ href="Client.html">Client</a> instance.
225
234
 
226
235
  <h3 class="section-bar">Public Instance methods</h3>
227
236
 
228
- <div id="method-M000079" class="method-detail">
229
- <a name="M000079"></a>
237
+ <div id="method-M000111" class="method-detail">
238
+ <a name="M000111"></a>
230
239
 
231
240
  <div class="method-heading">
232
- <a href="#M000079" class="method-signature">
241
+ <a href="#M000111" class="method-signature">
233
242
  <span class="method-name">[]</span><span class="method-args">(key)</span>
234
243
  </a>
235
244
  </div>
@@ -239,23 +248,49 @@ href="Client.html">Client</a> instance.
239
248
  Return an object in this bucket by key.
240
249
  </p>
241
250
  <p><a class="source-toggle" href="#"
242
- onclick="toggleCode('M000079-source');return false;">[Source]</a></p>
243
- <div class="method-source-code" id="M000079-source">
251
+ onclick="toggleCode('M000111-source');return false;">[Source]</a></p>
252
+ <div class="method-source-code" id="M000111-source">
253
+ <pre>
254
+ <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 79</span>
255
+ 79: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">key</span>)
256
+ 80: <span class="ruby-ivar">@contents</span>[<span class="ruby-identifier">key</span>]
257
+ 81: <span class="ruby-keyword kw">end</span>
258
+ </pre>
259
+ </div>
260
+ </div>
261
+ </div>
262
+
263
+ <div id="method-M000110" class="method-detail">
264
+ <a name="M000110"></a>
265
+
266
+ <div class="method-heading">
267
+ <a href="#M000110" class="method-signature">
268
+ <span class="method-name">last_key</span><span class="method-args">()</span>
269
+ </a>
270
+ </div>
271
+
272
+ <div class="method-description">
273
+ <p>
274
+ Get the last key in the contents hash.
275
+ </p>
276
+ <p><a class="source-toggle" href="#"
277
+ onclick="toggleCode('M000110-source');return false;">[Source]</a></p>
278
+ <div class="method-source-code" id="M000110-source">
244
279
  <pre>
245
- <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 72</span>
246
- 72: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">key</span>)
247
- 73: <span class="ruby-ivar">@contents</span>[<span class="ruby-identifier">key</span>]
248
- 74: <span class="ruby-keyword kw">end</span>
280
+ <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 74</span>
281
+ 74: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">last_key</span>
282
+ 75: <span class="ruby-ivar">@contents</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">last</span>
283
+ 76: <span class="ruby-keyword kw">end</span>
249
284
  </pre>
250
285
  </div>
251
286
  </div>
252
287
  </div>
253
288
 
254
- <div id="method-M000078" class="method-detail">
255
- <a name="M000078"></a>
289
+ <div id="method-M000109" class="method-detail">
290
+ <a name="M000109"></a>
256
291
 
257
292
  <div class="method-heading">
258
- <a href="#M000078" class="method-signature">
293
+ <a href="#M000109" class="method-signature">
259
294
  <span class="method-name">parse_listing</span><span class="method-args">(bucket_listing_xml)</span>
260
295
  </a>
261
296
  </div>
@@ -266,43 +301,43 @@ Parse raw <a href="../XML.html">XML</a> ListBucketResponse from S3 into
266
301
  object instances.
267
302
  </p>
268
303
  <p><a class="source-toggle" href="#"
269
- onclick="toggleCode('M000078-source');return false;">[Source]</a></p>
270
- <div class="method-source-code" id="M000078-source">
304
+ onclick="toggleCode('M000109-source');return false;">[Source]</a></p>
305
+ <div class="method-source-code" id="M000109-source">
271
306
  <pre>
272
- <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 47</span>
273
- 47: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_listing</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
274
- 48: <span class="ruby-identifier">doc</span> = <span class="ruby-constant">XML</span>.<span class="ruby-identifier">get_xml_doc</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
275
- 49:
276
- 50: <span class="ruby-identifier">prop_setter</span> = <span class="ruby-identifier">lambda</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">prop</span>, <span class="ruby-identifier">path</span><span class="ruby-operator">|</span>
277
- 51: <span class="ruby-identifier">node</span> = <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">find</span>(<span class="ruby-node">&quot;//ListBucketResult/#{path}&quot;</span>).<span class="ruby-identifier">to_a</span>.<span class="ruby-identifier">first</span>
278
- 52: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">send</span>(<span class="ruby-node">&quot;#{prop}=&quot;</span>, <span class="ruby-identifier">node</span>.<span class="ruby-identifier">content</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">node</span>
279
- 53: <span class="ruby-keyword kw">end</span>
280
- 54:
281
- 55: <span class="ruby-comment cmt"># metadata</span>
282
- 56: <span class="ruby-identifier">prop_setter</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">:name</span>, <span class="ruby-value str">'Name'</span>)
283
- 57: <span class="ruby-identifier">prop_setter</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">:delimiter</span>, <span class="ruby-value str">'Delimiter'</span>)
284
- 58: <span class="ruby-identifier">prop_setter</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">:prefix</span>, <span class="ruby-value str">'Prefix'</span>)
285
- 59: <span class="ruby-identifier">prop_setter</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">:marker</span>, <span class="ruby-value str">'Marker'</span>)
286
- 60: <span class="ruby-identifier">prop_setter</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">:max_keys</span>, <span class="ruby-value str">'MaxKeys'</span>)
287
- 61: <span class="ruby-identifier">prop_setter</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">:is_truncated</span>, <span class="ruby-value str">'IsTruncated'</span>)
288
- 62:
289
- 63: <span class="ruby-comment cmt"># contents</span>
290
- 64: <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">find</span>(<span class="ruby-value str">'//Contents'</span>).<span class="ruby-identifier">to_a</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">node</span><span class="ruby-operator">|</span>
291
- 65: <span class="ruby-identifier">obj</span> = <span class="ruby-constant">S3Object</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">node</span>)
292
- 66: <span class="ruby-comment cmt"># Add to the content listing for the bucket</span>
293
- 67: <span class="ruby-ivar">@contents</span>[<span class="ruby-identifier">obj</span>.<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">obj</span>
294
- 68: <span class="ruby-keyword kw">end</span>
295
- 69: <span class="ruby-keyword kw">end</span>
307
+ <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 49</span>
308
+ 49: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_listing</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
309
+ 50: <span class="ruby-identifier">doc</span> = <span class="ruby-constant">XML</span>.<span class="ruby-identifier">get_xml_doc</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
310
+ 51:
311
+ 52: <span class="ruby-identifier">prop_setter</span> = <span class="ruby-identifier">lambda</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">prop</span>, <span class="ruby-identifier">path</span><span class="ruby-operator">|</span>
312
+ 53: <span class="ruby-identifier">node</span> = <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">find</span>(<span class="ruby-node">&quot;//ListBucketResult/#{path}&quot;</span>).<span class="ruby-identifier">to_a</span>.<span class="ruby-identifier">first</span>
313
+ 54: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">send</span>(<span class="ruby-node">&quot;#{prop}=&quot;</span>, <span class="ruby-identifier">node</span>.<span class="ruby-identifier">content</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">node</span>
314
+ 55: <span class="ruby-keyword kw">end</span>
315
+ 56:
316
+ 57: <span class="ruby-comment cmt"># metadata</span>
317
+ 58: <span class="ruby-identifier">prop_setter</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">:name</span>, <span class="ruby-value str">'Name'</span>)
318
+ 59: <span class="ruby-identifier">prop_setter</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">:delimiter</span>, <span class="ruby-value str">'Delimiter'</span>)
319
+ 60: <span class="ruby-identifier">prop_setter</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">:prefix</span>, <span class="ruby-value str">'Prefix'</span>)
320
+ 61: <span class="ruby-identifier">prop_setter</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">:marker</span>, <span class="ruby-value str">'Marker'</span>)
321
+ 62: <span class="ruby-identifier">prop_setter</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">:max_keys</span>, <span class="ruby-value str">'MaxKeys'</span>)
322
+ 63: <span class="ruby-identifier">prop_setter</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">:is_truncated</span>, <span class="ruby-value str">'IsTruncated'</span>)
323
+ 64:
324
+ 65: <span class="ruby-comment cmt"># contents</span>
325
+ 66: <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">find</span>(<span class="ruby-value str">'//Contents'</span>).<span class="ruby-identifier">to_a</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">node</span><span class="ruby-operator">|</span>
326
+ 67: <span class="ruby-identifier">obj</span> = <span class="ruby-constant">S3Object</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">node</span>)
327
+ 68: <span class="ruby-comment cmt"># Add to the content listing for the bucket</span>
328
+ 69: <span class="ruby-ivar">@contents</span>[<span class="ruby-identifier">obj</span>.<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">obj</span>
329
+ 70: <span class="ruby-keyword kw">end</span>
330
+ 71: <span class="ruby-keyword kw">end</span>
296
331
  </pre>
297
332
  </div>
298
333
  </div>
299
334
  </div>
300
335
 
301
- <div id="method-M000080" class="method-detail">
302
- <a name="M000080"></a>
336
+ <div id="method-M000112" class="method-detail">
337
+ <a name="M000112"></a>
303
338
 
304
339
  <div class="method-heading">
305
- <a href="#M000080" class="method-signature">
340
+ <a href="#M000112" class="method-signature">
306
341
  <span class="method-name">pretty</span><span class="method-args">()</span>
307
342
  </a>
308
343
  </div>
@@ -312,23 +347,23 @@ object instances.
312
347
  Pretty listing of keys in alphabetical order.
313
348
  </p>
314
349
  <p><a class="source-toggle" href="#"
315
- onclick="toggleCode('M000080-source');return false;">[Source]</a></p>
316
- <div class="method-source-code" id="M000080-source">
350
+ onclick="toggleCode('M000112-source');return false;">[Source]</a></p>
351
+ <div class="method-source-code" id="M000112-source">
317
352
  <pre>
318
- <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 77</span>
319
- 77: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pretty</span>
320
- 78: <span class="ruby-ivar">@contents</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">sort</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">puts</span> <span class="ruby-identifier">k</span> }
321
- 79: <span class="ruby-keyword kw">end</span>
353
+ <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 84</span>
354
+ 84: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pretty</span>
355
+ 85: <span class="ruby-ivar">@contents</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">sort</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">puts</span> <span class="ruby-identifier">k</span> }
356
+ 86: <span class="ruby-keyword kw">end</span>
322
357
  </pre>
323
358
  </div>
324
359
  </div>
325
360
  </div>
326
361
 
327
- <div id="method-M000077" class="method-detail">
328
- <a name="M000077"></a>
362
+ <div id="method-M000108" class="method-detail">
363
+ <a name="M000108"></a>
329
364
 
330
365
  <div class="method-heading">
331
- <a href="#M000077" class="method-signature">
366
+ <a href="#M000108" class="method-signature">
332
367
  <span class="method-name">set_listing_xml</span><span class="method-args">(bucket_listing_xml)</span>
333
368
  </a>
334
369
  </div>
@@ -339,19 +374,21 @@ Convert a ListBucketResult <a href="../XML.html">XML</a> document into an
339
374
  object representation.
340
375
  </p>
341
376
  <p><a class="source-toggle" href="#"
342
- onclick="toggleCode('M000077-source');return false;">[Source]</a></p>
343
- <div class="method-source-code" id="M000077-source">
377
+ onclick="toggleCode('M000108-source');return false;">[Source]</a></p>
378
+ <div class="method-source-code" id="M000108-source">
344
379
  <pre>
345
380
  <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 36</span>
346
381
  36: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_listing_xml</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
347
- 37: <span class="ruby-comment cmt"># remove the namespace declaration: libxml doesn't like it</span>
348
- 38: <span class="ruby-identifier">bucket_listing_xml</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/ xmlns=&quot;http:\/\/s3.amazonaws.com\/doc\/2006-03-01\/&quot;/</span>, <span class="ruby-value str">''</span>)
349
- 39: <span class="ruby-identifier">parse_listing</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
350
- 40: <span class="ruby-keyword kw">rescue</span>
351
- 41: <span class="ruby-identifier">message</span> = <span class="ruby-value str">&quot;Cannot create bucket listing from supplied XML&quot;</span>
352
- 42: <span class="ruby-identifier">message</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot; (was nil)&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">bucket_listing_xml</span>.<span class="ruby-identifier">nil?</span>
353
- 43: <span class="ruby-identifier">raise</span> <span class="ruby-constant">S33rException</span><span class="ruby-operator">::</span><span class="ruby-constant">InvalidBucketListing</span>, <span class="ruby-identifier">message</span>
354
- 44: <span class="ruby-keyword kw">end</span>
382
+ 37: <span class="ruby-keyword kw">begin</span>
383
+ 38: <span class="ruby-comment cmt"># remove the namespace declaration: libxml doesn't like it</span>
384
+ 39: <span class="ruby-identifier">bucket_listing_xml</span> = <span class="ruby-constant">S33r</span>.<span class="ruby-identifier">remove_namespace</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
385
+ 40: <span class="ruby-identifier">parse_listing</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
386
+ 41: <span class="ruby-keyword kw">rescue</span>
387
+ 42: <span class="ruby-identifier">message</span> = <span class="ruby-value str">&quot;Cannot create bucket listing from supplied XML&quot;</span>
388
+ 43: <span class="ruby-identifier">message</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot; (was nil)&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">bucket_listing_xml</span>.<span class="ruby-identifier">nil?</span>
389
+ 44: <span class="ruby-identifier">raise</span> <span class="ruby-constant">S33rException</span><span class="ruby-operator">::</span><span class="ruby-constant">InvalidBucketListing</span>, <span class="ruby-identifier">message</span>
390
+ 45: <span class="ruby-keyword kw">end</span>
391
+ 46: <span class="ruby-keyword kw">end</span>
355
392
  </pre>
356
393
  </div>
357
394
  </div>
@@ -94,30 +94,41 @@ other headers can be handled by the core.
94
94
  <h3 class="section-bar">Methods</h3>
95
95
 
96
96
  <div class="name-list">
97
- <a href="#M000099">add_client_headers</a>&nbsp;&nbsp;
98
- <a href="#M000091">bucket_exists?</a>&nbsp;&nbsp;
99
- <a href="#M000089">create_bucket</a>&nbsp;&nbsp;
100
- <a href="#M000090">delete_bucket</a>&nbsp;&nbsp;
101
- <a href="#M000098">delete_resource</a>&nbsp;&nbsp;
102
- <a href="#M000104">do_delete</a>&nbsp;&nbsp;
103
- <a href="#M000100">do_get</a>&nbsp;&nbsp;
104
- <a href="#M000101">do_head</a>&nbsp;&nbsp;
105
- <a href="#M000102">do_post</a>&nbsp;&nbsp;
106
- <a href="#M000103">do_put</a>&nbsp;&nbsp;
107
- <a href="#M000085">do_request</a>&nbsp;&nbsp;
108
- <a href="#M000094">get_object</a>&nbsp;&nbsp;
109
- <a href="#M000086">get_requester</a>&nbsp;&nbsp;
110
- <a href="#M000093">get_resource</a>&nbsp;&nbsp;
111
- <a href="#M000092">head_resource</a>&nbsp;&nbsp;
112
- <a href="#M000082">init</a>&nbsp;&nbsp;
113
- <a href="#M000088">list_bucket</a>&nbsp;&nbsp;
114
- <a href="#M000087">list_buckets</a>&nbsp;&nbsp;
115
- <a href="#M000083">load_config</a>&nbsp;&nbsp;
116
- <a href="#M000081">new</a>&nbsp;&nbsp;
117
- <a href="#M000097">put_file</a>&nbsp;&nbsp;
118
- <a href="#M000095">put_resource</a>&nbsp;&nbsp;
119
- <a href="#M000096">put_text</a>&nbsp;&nbsp;
120
- <a href="#M000084">use_ssl?</a>&nbsp;&nbsp;
97
+ <a href="#M000142">add_client_headers</a>&nbsp;&nbsp;
98
+ <a href="#M000124">bucket_exists?</a>&nbsp;&nbsp;
99
+ <a href="#M000122">create_bucket</a>&nbsp;&nbsp;
100
+ <a href="#M000123">delete_bucket</a>&nbsp;&nbsp;
101
+ <a href="#M000141">delete_resource</a>&nbsp;&nbsp;
102
+ <a href="#M000134">disable_log_target</a>&nbsp;&nbsp;
103
+ <a href="#M000136">disable_logging</a>&nbsp;&nbsp;
104
+ <a href="#M000147">do_delete</a>&nbsp;&nbsp;
105
+ <a href="#M000143">do_get</a>&nbsp;&nbsp;
106
+ <a href="#M000144">do_head</a>&nbsp;&nbsp;
107
+ <a href="#M000145">do_post</a>&nbsp;&nbsp;
108
+ <a href="#M000146">do_put</a>&nbsp;&nbsp;
109
+ <a href="#M000117">do_request</a>&nbsp;&nbsp;
110
+ <a href="#M000133">enable_log_target</a>&nbsp;&nbsp;
111
+ <a href="#M000135">enable_logging</a>&nbsp;&nbsp;
112
+ <a href="#M000128">get_acl</a>&nbsp;&nbsp;
113
+ <a href="#M000114">get_client</a>&nbsp;&nbsp;
114
+ <a href="#M000137">get_logging</a>&nbsp;&nbsp;
115
+ <a href="#M000127">get_object</a>&nbsp;&nbsp;
116
+ <a href="#M000118">get_requester</a>&nbsp;&nbsp;
117
+ <a href="#M000125">get_resource</a>&nbsp;&nbsp;
118
+ <a href="#M000115">init</a>&nbsp;&nbsp;
119
+ <a href="#M000120">list</a>&nbsp;&nbsp;
120
+ <a href="#M000121">list_bucket</a>&nbsp;&nbsp;
121
+ <a href="#M000119">list_buckets</a>&nbsp;&nbsp;
122
+ <a href="#M000116">load_config</a>&nbsp;&nbsp;
123
+ <a href="#M000132">make_private</a>&nbsp;&nbsp;
124
+ <a href="#M000131">make_public</a>&nbsp;&nbsp;
125
+ <a href="#M000113">new</a>&nbsp;&nbsp;
126
+ <a href="#M000140">put_file</a>&nbsp;&nbsp;
127
+ <a href="#M000138">put_resource</a>&nbsp;&nbsp;
128
+ <a href="#M000139">put_text</a>&nbsp;&nbsp;
129
+ <a href="#M000126">resource_exists?</a>&nbsp;&nbsp;
130
+ <a href="#M000129">set_acl</a>&nbsp;&nbsp;
131
+ <a href="#M000130">set_logging</a>&nbsp;&nbsp;
121
132
  </div>
122
133
  </div>
123
134
 
@@ -147,12 +158,18 @@ other headers can be handled by the core.
147
158
  <tr class="top-aligned-row context-row">
148
159
  <td class="context-item-name">aws_access_key</td>
149
160
  <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
150
- <td class="context-item-desc"></td>
161
+ <td class="context-item-desc">
162
+ S3 keys.
163
+
164
+ </td>
151
165
  </tr>
152
166
  <tr class="top-aligned-row context-row">
153
167
  <td class="context-item-name">aws_secret_access_key</td>
154
168
  <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
155
- <td class="context-item-desc"></td>
169
+ <td class="context-item-desc">
170
+ S3 keys.
171
+
172
+ </td>
156
173
  </tr>
157
174
  <tr class="top-aligned-row context-row">
158
175
  <td class="context-item-name">chunk_size</td>
@@ -169,6 +186,30 @@ Size of data chunk to be sent per request when putting data.
169
186
  Headers which should be sent with every request by default (unless
170
187
  overridden).
171
188
 
189
+ </td>
190
+ </tr>
191
+ <tr class="top-aligned-row context-row">
192
+ <td class="context-item-name">dump_requests</td>
193
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
194
+ <td class="context-item-desc">
195
+ Whether client dumps headers from requests.
196
+
197
+ </td>
198
+ </tr>
199
+ <tr class="top-aligned-row context-row">
200
+ <td class="context-item-name">log_bucket</td>
201
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
202
+ <td class="context-item-desc">
203
+ Default log bucket location.
204
+
205
+ </td>
206
+ </tr>
207
+ <tr class="top-aligned-row context-row">
208
+ <td class="context-item-name">use_ssl</td>
209
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
210
+ <td class="context-item-desc">
211
+ Whether client should use SSL.
212
+
172
213
  </td>
173
214
  </tr>
174
215
  </table>
@@ -181,11 +222,11 @@ overridden).
181
222
  <div id="methods">
182
223
  <h3 class="section-bar">Public Class methods</h3>
183
224
 
184
- <div id="method-M000082" class="method-detail">
185
- <a name="M000082"></a>
225
+ <div id="method-M000115" class="method-detail">
226
+ <a name="M000115"></a>
186
227
 
187
228
  <div class="method-heading">
188
- <a href="#M000082" class="method-signature">
229
+ <a href="#M000115" class="method-signature">
189
230
  <span class="method-name">init</span><span class="method-args">(config_file)</span>
190
231
  </a>
191
232
  </div>
@@ -193,28 +234,28 @@ overridden).
193
234
  <div class="method-description">
194
235
  <p>
195
236
  Initialise client from YAML configuration file (see <a
196
- href="Client.html#M000083">load_config</a> method for details of acceptable
237
+ href="Client.html#M000116">load_config</a> method for details of acceptable
197
238
  format).
198
239
  </p>
199
240
  <p><a class="source-toggle" href="#"
200
- onclick="toggleCode('M000082-source');return false;">[Source]</a></p>
201
- <div class="method-source-code" id="M000082-source">
241
+ onclick="toggleCode('M000115-source');return false;">[Source]</a></p>
242
+ <div class="method-source-code" id="M000115-source">
202
243
  <pre>
203
- <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 58</span>
204
- 58: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Client</span>.<span class="ruby-identifier">init</span>(<span class="ruby-identifier">config_file</span>)
205
- 59: <span class="ruby-identifier">aws_access_key</span>, <span class="ruby-identifier">aws_secret_access_key</span>, <span class="ruby-identifier">options</span>, <span class="ruby-identifier">_</span> = <span class="ruby-identifier">load_config</span>(<span class="ruby-identifier">config_file</span>)
206
- 60: <span class="ruby-constant">Client</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">aws_access_key</span>, <span class="ruby-identifier">aws_secret_access_key</span>, <span class="ruby-identifier">options</span>)
207
- 61: <span class="ruby-keyword kw">end</span>
244
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 86</span>
245
+ 86: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Client</span>.<span class="ruby-identifier">init</span>(<span class="ruby-identifier">config_file</span>)
246
+ 87: <span class="ruby-identifier">aws_access_key</span>, <span class="ruby-identifier">aws_secret_access_key</span>, <span class="ruby-identifier">options</span> = <span class="ruby-identifier">load_config</span>(<span class="ruby-identifier">config_file</span>)
247
+ 88: <span class="ruby-constant">Client</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">aws_access_key</span>, <span class="ruby-identifier">aws_secret_access_key</span>, <span class="ruby-identifier">options</span>)
248
+ 89: <span class="ruby-keyword kw">end</span>
208
249
  </pre>
209
250
  </div>
210
251
  </div>
211
252
  </div>
212
253
 
213
- <div id="method-M000083" class="method-detail">
214
- <a name="M000083"></a>
254
+ <div id="method-M000116" class="method-detail">
255
+ <a name="M000116"></a>
215
256
 
216
257
  <div class="method-heading">
217
- <a href="#M000083" class="method-signature">
258
+ <a href="#M000116" class="method-signature">
218
259
  <span class="method-name">load_config</span><span class="method-args">(config_file)</span>
219
260
  </a>
220
261
  </div>
@@ -231,13 +272,13 @@ Load YAML config. file for a client. The config. file looks like this:
231
272
  strict: false
232
273
  public_contents: true
233
274
  use_ssl: false
234
- default_bucket: 'nobucket'
235
- # extensions used in your own program
236
- custom:
237
- to_email: 'me@example.com'
238
- from_email: 'you@example.com'#
275
+ default_bucket: 'nobucket'#
239
276
  </pre>
240
277
  <p>
278
+ Note that the loader also runs the config. file through ERB, so you can add
279
+ dynamic blocks of ERB (Ruby) code into your files.
280
+ </p>
281
+ <p>
241
282
  The <tt>options</tt> section contains settings specific to <a
242
283
  href="Client.html">Client</a> and NamedClient instances; <tt>custom</tt>
243
284
  contains extra settings specific to your application. <tt>options</tt> and
@@ -245,38 +286,34 @@ contains extra settings specific to your application. <tt>options</tt> and
245
286
  required.
246
287
  </p>
247
288
  <p>
248
- Returns an array <tt>[aws_access_key, aws_secret_access_key, options,
249
- custom]</tt>, where <tt>options</tt> and <tt>custom</tt> are hashes.
289
+ Returns an array <tt>[aws_access_key, aws_secret_access_key, options]</tt>,
290
+ where <tt>options</tt> is a hash.
250
291
  </p>
251
292
  <p><a class="source-toggle" href="#"
252
- onclick="toggleCode('M000083-source');return false;">[Source]</a></p>
253
- <div class="method-source-code" id="M000083-source">
293
+ onclick="toggleCode('M000116-source');return false;">[Source]</a></p>
294
+ <div class="method-source-code" id="M000116-source">
254
295
  <pre>
255
- <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 73</span>
256
- 73: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Client</span>.<span class="ruby-identifier">load_config</span>(<span class="ruby-identifier">config_file</span>)
257
- 74: <span class="ruby-identifier">require</span> <span class="ruby-value str">'yaml'</span>
258
- 75: <span class="ruby-identifier">config</span> = <span class="ruby-constant">YAML</span><span class="ruby-operator">::</span><span class="ruby-identifier">load_file</span>(<span class="ruby-identifier">config_file</span>)
259
- 76: <span class="ruby-identifier">aws_access_key</span> = <span class="ruby-identifier">config</span>[<span class="ruby-value str">'aws_access_key'</span>]
260
- 77: <span class="ruby-identifier">aws_secret_access_key</span> = <span class="ruby-identifier">config</span>[<span class="ruby-value str">'aws_secret_access_key'</span>]
261
- 78:
262
- 79: <span class="ruby-identifier">options</span> = {}
263
- 80: <span class="ruby-identifier">options</span> = <span class="ruby-constant">S33r</span>.<span class="ruby-identifier">keys_to_symbols</span>(<span class="ruby-identifier">config</span>[<span class="ruby-value str">'options'</span>]) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">config</span>[<span class="ruby-value str">'options'</span>]
264
- 81:
265
- 82: <span class="ruby-identifier">custom</span> = {}
266
- 83: <span class="ruby-identifier">custom</span> = <span class="ruby-constant">S33r</span>.<span class="ruby-identifier">keys_to_symbols</span>(<span class="ruby-identifier">config</span>[<span class="ruby-value str">'custom'</span>]) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">config</span>[<span class="ruby-value str">'custom'</span>]
267
- 84:
268
- 85: [<span class="ruby-identifier">aws_access_key</span>, <span class="ruby-identifier">aws_secret_access_key</span>, <span class="ruby-identifier">options</span>, <span class="ruby-identifier">custom</span>]
269
- 86: <span class="ruby-keyword kw">end</span>
296
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 104</span>
297
+ 104: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Client</span>.<span class="ruby-identifier">load_config</span>(<span class="ruby-identifier">config_file</span>)
298
+ 105: <span class="ruby-identifier">config</span> = <span class="ruby-constant">YAML</span><span class="ruby-operator">::</span><span class="ruby-identifier">load</span>(<span class="ruby-constant">ERB</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">IO</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">config_file</span>)).<span class="ruby-identifier">result</span>)
299
+ 106: <span class="ruby-identifier">aws_access_key</span> = <span class="ruby-identifier">config</span>[<span class="ruby-value str">'aws_access_key'</span>]
300
+ 107: <span class="ruby-identifier">aws_secret_access_key</span> = <span class="ruby-identifier">config</span>[<span class="ruby-value str">'aws_secret_access_key'</span>]
301
+ 108:
302
+ 109: <span class="ruby-identifier">options</span> = {}
303
+ 110: <span class="ruby-identifier">options</span> = <span class="ruby-constant">S33r</span>.<span class="ruby-identifier">keys_to_symbols</span>(<span class="ruby-identifier">config</span>[<span class="ruby-value str">'options'</span>]) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">config</span>[<span class="ruby-value str">'options'</span>]
304
+ 111:
305
+ 112: [<span class="ruby-identifier">aws_access_key</span>, <span class="ruby-identifier">aws_secret_access_key</span>, <span class="ruby-identifier">options</span>]
306
+ 113: <span class="ruby-keyword kw">end</span>
270
307
  </pre>
271
308
  </div>
272
309
  </div>
273
310
  </div>
274
311
 
275
- <div id="method-M000081" class="method-detail">
276
- <a name="M000081"></a>
312
+ <div id="method-M000113" class="method-detail">
313
+ <a name="M000113"></a>
277
314
 
278
315
  <div class="method-heading">
279
- <a href="#M000081" class="method-signature">
316
+ <a href="#M000113" class="method-signature">
280
317
  <span class="method-name">new</span><span class="method-args">(aws_access_key, aws_secret_access_key, options={})</span>
281
318
  </a>
282
319
  </div>
@@ -299,33 +336,28 @@ and headers to STDOUT
299
336
  </li>
300
337
  </ul>
301
338
  <p><a class="source-toggle" href="#"
302
- onclick="toggleCode('M000081-source');return false;">[Source]</a></p>
303
- <div class="method-source-code" id="M000081-source">
339
+ onclick="toggleCode('M000113-source');return false;">[Source]</a></p>
340
+ <div class="method-source-code" id="M000113-source">
304
341
  <pre>
305
- <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 32</span>
306
- 32: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">aws_access_key</span>, <span class="ruby-identifier">aws_secret_access_key</span>, <span class="ruby-identifier">options</span>={})
307
- 33: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">false</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:use_ssl</span>]
308
- 34: <span class="ruby-ivar">@client</span> = <span class="ruby-constant">HTTP</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">HOST</span>, <span class="ruby-constant">NON_SSL_PORT</span>)
309
- 35: <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">use_ssl</span> = <span class="ruby-keyword kw">false</span>
310
- 36: <span class="ruby-keyword kw">else</span>
311
- 37: <span class="ruby-ivar">@client</span> = <span class="ruby-constant">HTTP</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">HOST</span>, <span class="ruby-constant">PORT</span>)
312
- 38: <span class="ruby-comment cmt"># turn off SSL certificate verification</span>
313
- 39: <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">verify_mode</span> = <span class="ruby-constant">OpenSSL</span><span class="ruby-operator">::</span><span class="ruby-constant">SSL</span><span class="ruby-operator">::</span><span class="ruby-constant">VERIFY_NONE</span>
314
- 40: <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">use_ssl</span> = <span class="ruby-keyword kw">true</span>
315
- 41: <span class="ruby-keyword kw">end</span>
316
- 42:
317
- 43: <span class="ruby-ivar">@dump_requests</span> = (<span class="ruby-keyword kw">true</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:dump_requests</span>])
318
- 44:
319
- 45: <span class="ruby-comment cmt"># set default chunk size for streaming request body</span>
320
- 46: <span class="ruby-ivar">@chunk_size</span> = <span class="ruby-constant">DEFAULT_CHUNK_SIZE</span>
321
- 47:
322
- 48: <span class="ruby-comment cmt"># Amazon S3 developer keys</span>
323
- 49: <span class="ruby-ivar">@aws_access_key</span> = <span class="ruby-identifier">aws_access_key</span>
324
- 50: <span class="ruby-ivar">@aws_secret_access_key</span> = <span class="ruby-identifier">aws_secret_access_key</span>
342
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 46</span>
343
+ 46: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">aws_access_key</span>, <span class="ruby-identifier">aws_secret_access_key</span>, <span class="ruby-identifier">options</span>={})
344
+ 47: <span class="ruby-ivar">@use_ssl</span> = <span class="ruby-keyword kw">true</span>
345
+ 48: <span class="ruby-ivar">@use_ssl</span> = <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-keyword kw">false</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:use_ssl</span>])
346
+ 49:
347
+ 50: <span class="ruby-ivar">@dump_requests</span> = (<span class="ruby-keyword kw">true</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:dump_requests</span>])
325
348
  51:
326
- 52: <span class="ruby-comment cmt"># headers sent with every request made by this client</span>
327
- 53: <span class="ruby-ivar">@client_headers</span> = {}
328
- 54: <span class="ruby-keyword kw">end</span>
349
+ 52: <span class="ruby-comment cmt"># set default chunk size for streaming request body</span>
350
+ 53: <span class="ruby-ivar">@chunk_size</span> = <span class="ruby-constant">DEFAULT_CHUNK_SIZE</span>
351
+ 54:
352
+ 55: <span class="ruby-ivar">@log_bucket</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:log_bucket</span>]
353
+ 56:
354
+ 57: <span class="ruby-comment cmt"># Amazon S3 developer keys</span>
355
+ 58: <span class="ruby-ivar">@aws_access_key</span> = <span class="ruby-identifier">aws_access_key</span>
356
+ 59: <span class="ruby-ivar">@aws_secret_access_key</span> = <span class="ruby-identifier">aws_secret_access_key</span>
357
+ 60:
358
+ 61: <span class="ruby-comment cmt"># headers sent with every request made by this client</span>
359
+ 62: <span class="ruby-ivar">@client_headers</span> = {}
360
+ 63: <span class="ruby-keyword kw">end</span>
329
361
  </pre>
330
362
  </div>
331
363
  </div>
@@ -333,11 +365,11 @@ and headers to STDOUT
333
365
 
334
366
  <h3 class="section-bar">Public Instance methods</h3>
335
367
 
336
- <div id="method-M000099" class="method-detail">
337
- <a name="M000099"></a>
368
+ <div id="method-M000142" class="method-detail">
369
+ <a name="M000142"></a>
338
370
 
339
371
  <div class="method-heading">
340
- <a href="#M000099" class="method-signature">
372
+ <a href="#M000142" class="method-signature">
341
373
  <span class="method-name">add_client_headers</span><span class="method-args">(headers)</span>
342
374
  </a>
343
375
  </div>
@@ -356,49 +388,52 @@ Returns <tt>headers</tt> with the content of <tt>client_headers</tt> merged
356
388
  in.
357
389
  </p>
358
390
  <p><a class="source-toggle" href="#"
359
- onclick="toggleCode('M000099-source');return false;">[Source]</a></p>
360
- <div class="method-source-code" id="M000099-source">
391
+ onclick="toggleCode('M000142-source');return false;">[Source]</a></p>
392
+ <div class="method-source-code" id="M000142-source">
361
393
  <pre>
362
- <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 279</span>
363
- 279: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_client_headers</span>(<span class="ruby-identifier">headers</span>)
364
- 280: <span class="ruby-identifier">headers</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">client_headers</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">arg</span>, <span class="ruby-identifier">default</span><span class="ruby-operator">|</span> <span class="ruby-identifier">arg</span> }
365
- 281: <span class="ruby-keyword kw">end</span>
394
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 478</span>
395
+ 478: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_client_headers</span>(<span class="ruby-identifier">headers</span>)
396
+ 479: <span class="ruby-identifier">headers</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">client_headers</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">arg</span>, <span class="ruby-identifier">default</span><span class="ruby-operator">|</span> <span class="ruby-identifier">arg</span> }
397
+ 480: <span class="ruby-keyword kw">end</span>
366
398
  </pre>
367
399
  </div>
368
400
  </div>
369
401
  </div>
370
402
 
371
- <div id="method-M000091" class="method-detail">
372
- <a name="M000091"></a>
403
+ <div id="method-M000124" class="method-detail">
404
+ <a name="M000124"></a>
373
405
 
374
406
  <div class="method-heading">
375
- <a href="#M000091" class="method-signature">
407
+ <a href="#M000124" class="method-signature">
376
408
  <span class="method-name">bucket_exists?</span><span class="method-args">(bucket_name)</span>
377
409
  </a>
378
410
  </div>
379
411
 
380
412
  <div class="method-description">
381
413
  <p>
414
+ Check whether a bucket exists or not.
415
+ </p>
416
+ <p>
382
417
  Returns true if bucket exists.
383
418
  </p>
384
419
  <p><a class="source-toggle" href="#"
385
- onclick="toggleCode('M000091-source');return false;">[Source]</a></p>
386
- <div class="method-source-code" id="M000091-source">
420
+ onclick="toggleCode('M000124-source');return false;">[Source]</a></p>
421
+ <div class="method-source-code" id="M000124-source">
387
422
  <pre>
388
- <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 195</span>
389
- 195: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">bucket_exists?</span>(<span class="ruby-identifier">bucket_name</span>)
390
- 196: <span class="ruby-identifier">do_head</span>(<span class="ruby-node">&quot;/#{bucket_name}&quot;</span>).<span class="ruby-identifier">ok?</span>
391
- 197: <span class="ruby-keyword kw">end</span>
423
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 266</span>
424
+ 266: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">bucket_exists?</span>(<span class="ruby-identifier">bucket_name</span>)
425
+ 267: <span class="ruby-identifier">resource_exists?</span>(<span class="ruby-identifier">bucket_name</span>)
426
+ 268: <span class="ruby-keyword kw">end</span>
392
427
  </pre>
393
428
  </div>
394
429
  </div>
395
430
  </div>
396
431
 
397
- <div id="method-M000089" class="method-detail">
398
- <a name="M000089"></a>
432
+ <div id="method-M000122" class="method-detail">
433
+ <a name="M000122"></a>
399
434
 
400
435
  <div class="method-heading">
401
- <a href="#M000089" class="method-signature">
436
+ <a href="#M000122" class="method-signature">
402
437
  <span class="method-name">create_bucket</span><span class="method-args">(bucket_name, headers={})</span>
403
438
  </a>
404
439
  </div>
@@ -406,25 +441,29 @@ Returns true if bucket exists.
406
441
  <div class="method-description">
407
442
  <p>
408
443
  Create a bucket.
444
+ </p>
445
+ <p>
446
+ Returns true if response returned a 200 code; false otherwise.
409
447
  </p>
410
448
  <p><a class="source-toggle" href="#"
411
- onclick="toggleCode('M000089-source');return false;">[Source]</a></p>
412
- <div class="method-source-code" id="M000089-source">
449
+ onclick="toggleCode('M000122-source');return false;">[Source]</a></p>
450
+ <div class="method-source-code" id="M000122-source">
413
451
  <pre>
414
- <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 174</span>
415
- 174: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create_bucket</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">headers</span>={})
416
- 175: <span class="ruby-identifier">do_put</span>(<span class="ruby-node">&quot;/#{bucket_name}&quot;</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">headers</span>)
417
- 176: <span class="ruby-keyword kw">end</span>
452
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 241</span>
453
+ 241: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create_bucket</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">headers</span>={})
454
+ 242: <span class="ruby-identifier">resp</span> = <span class="ruby-identifier">do_put</span>(<span class="ruby-node">&quot;/#{bucket_name}&quot;</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">headers</span>)
455
+ 243: <span class="ruby-identifier">resp</span>.<span class="ruby-identifier">ok?</span>
456
+ 244: <span class="ruby-keyword kw">end</span>
418
457
  </pre>
419
458
  </div>
420
459
  </div>
421
460
  </div>
422
461
 
423
- <div id="method-M000090" class="method-detail">
424
- <a name="M000090"></a>
462
+ <div id="method-M000123" class="method-detail">
463
+ <a name="M000123"></a>
425
464
 
426
465
  <div class="method-heading">
427
- <a href="#M000090" class="method-signature">
466
+ <a href="#M000123" class="method-signature">
428
467
  <span class="method-name">delete_bucket</span><span class="method-args">(bucket_name, headers={}, options={})</span>
429
468
  </a>
430
469
  </div>
@@ -443,30 +482,30 @@ the bucket itself
443
482
  </li>
444
483
  </ul>
445
484
  <p><a class="source-toggle" href="#"
446
- onclick="toggleCode('M000090-source');return false;">[Source]</a></p>
447
- <div class="method-source-code" id="M000090-source">
485
+ onclick="toggleCode('M000123-source');return false;">[Source]</a></p>
486
+ <div class="method-source-code" id="M000123-source">
448
487
  <pre>
449
- <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 183</span>
450
- 183: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete_bucket</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">headers</span>={}, <span class="ruby-identifier">options</span>={})
451
- 184: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">true</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:force</span>]
452
- 185: <span class="ruby-identifier">_</span>, <span class="ruby-identifier">bucket_listing</span> = <span class="ruby-identifier">list_bucket</span>(<span class="ruby-identifier">bucket_name</span>)
453
- 186: <span class="ruby-identifier">bucket_listing</span>.<span class="ruby-identifier">contents</span>.<span class="ruby-identifier">each_value</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">obj</span><span class="ruby-operator">|</span>
454
- 187: <span class="ruby-identifier">delete_resource</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">obj</span>.<span class="ruby-identifier">key</span>)
455
- 188: <span class="ruby-keyword kw">end</span>
456
- 189: <span class="ruby-keyword kw">end</span>
457
- 190:
458
- 191: <span class="ruby-identifier">do_delete</span>(<span class="ruby-node">&quot;/#{bucket_name}&quot;</span>, <span class="ruby-identifier">headers</span>)
459
- 192: <span class="ruby-keyword kw">end</span>
488
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 252</span>
489
+ 252: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete_bucket</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">headers</span>={}, <span class="ruby-identifier">options</span>={})
490
+ 253: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">true</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:force</span>]
491
+ 254: <span class="ruby-identifier">_</span>, <span class="ruby-identifier">bucket_listing</span> = <span class="ruby-identifier">list_bucket</span>(<span class="ruby-identifier">bucket_name</span>)
492
+ 255: <span class="ruby-identifier">bucket_listing</span>.<span class="ruby-identifier">contents</span>.<span class="ruby-identifier">each_value</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">obj</span><span class="ruby-operator">|</span>
493
+ 256: <span class="ruby-identifier">delete_resource</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">obj</span>.<span class="ruby-identifier">key</span>)
494
+ 257: <span class="ruby-keyword kw">end</span>
495
+ 258: <span class="ruby-keyword kw">end</span>
496
+ 259:
497
+ 260: <span class="ruby-identifier">do_delete</span>(<span class="ruby-node">&quot;/#{bucket_name}&quot;</span>, <span class="ruby-identifier">headers</span>)
498
+ 261: <span class="ruby-keyword kw">end</span>
460
499
  </pre>
461
500
  </div>
462
501
  </div>
463
502
  </div>
464
503
 
465
- <div id="method-M000098" class="method-detail">
466
- <a name="M000098"></a>
504
+ <div id="method-M000141" class="method-detail">
505
+ <a name="M000141"></a>
467
506
 
468
507
  <div class="method-heading">
469
- <a href="#M000098" class="method-signature">
508
+ <a href="#M000141" class="method-signature">
470
509
  <span class="method-name">delete_resource</span><span class="method-args">(bucket_name, resource_key, headers={})</span>
471
510
  </a>
472
511
  </div>
@@ -475,24 +514,202 @@ the bucket itself
475
514
  <p>
476
515
  Delete a resource from S3.
477
516
  </p>
517
+ <p>
518
+ Note that S3 returns the same response code () regardless of whether the
519
+ resource was successfully deleted, or didn&#8217;t exist in the first
520
+ place.
521
+ </p>
522
+ <p><a class="source-toggle" href="#"
523
+ onclick="toggleCode('M000141-source');return false;">[Source]</a></p>
524
+ <div class="method-source-code" id="M000141-source">
525
+ <pre>
526
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 468</span>
527
+ 468: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete_resource</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>, <span class="ruby-identifier">headers</span>={})
528
+ 469: <span class="ruby-identifier">do_delete</span>(<span class="ruby-node">&quot;/#{bucket_name}/#{resource_key}&quot;</span>, <span class="ruby-identifier">headers</span>)
529
+ 470: <span class="ruby-keyword kw">end</span>
530
+ </pre>
531
+ </div>
532
+ </div>
533
+ </div>
534
+
535
+ <div id="method-M000134" class="method-detail">
536
+ <a name="M000134"></a>
537
+
538
+ <div class="method-heading">
539
+ <a href="#M000134" class="method-signature">
540
+ <span class="method-name">disable_log_target</span><span class="method-args">(bucket_name)</span>
541
+ </a>
542
+ </div>
543
+
544
+ <div class="method-description">
545
+ <p>
546
+ Disable permissions for access logging into a bucket.
547
+ </p>
548
+ <p>
549
+ Returns true if the bucket is no longer log targetable; false if it remains
550
+ a log target.
551
+ </p>
552
+ <p><a class="source-toggle" href="#"
553
+ onclick="toggleCode('M000134-source');return false;">[Source]</a></p>
554
+ <div class="method-source-code" id="M000134-source">
555
+ <pre>
556
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 365</span>
557
+ 365: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">disable_log_target</span>(<span class="ruby-identifier">bucket_name</span>)
558
+ 366: <span class="ruby-identifier">acl</span> = <span class="ruby-identifier">get_acl</span>(<span class="ruby-identifier">bucket_name</span>)
559
+ 367: <span class="ruby-identifier">acl</span>.<span class="ruby-identifier">remove_log_target</span>
560
+ 368: <span class="ruby-identifier">set_acl</span>(<span class="ruby-identifier">acl</span>, <span class="ruby-identifier">bucket_name</span>)
561
+ 369: <span class="ruby-operator">!</span><span class="ruby-identifier">acl</span>.<span class="ruby-identifier">log_targetable?</span>
562
+ 370: <span class="ruby-keyword kw">end</span>
563
+ </pre>
564
+ </div>
565
+ </div>
566
+ </div>
567
+
568
+ <div id="method-M000136" class="method-detail">
569
+ <a name="M000136"></a>
570
+
571
+ <div class="method-heading">
572
+ <a href="#M000136" class="method-signature">
573
+ <span class="method-name">disable_logging</span><span class="method-args">()</span>
574
+ </a>
575
+ </div>
576
+
577
+ <div class="method-description">
578
+ <p>
579
+ TODO
580
+ </p>
581
+ <p><a class="source-toggle" href="#"
582
+ onclick="toggleCode('M000136-source');return false;">[Source]</a></p>
583
+ <div class="method-source-code" id="M000136-source">
584
+ <pre>
585
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 402</span>
586
+ 402: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">disable_logging</span>
587
+ 403: <span class="ruby-keyword kw">end</span>
588
+ </pre>
589
+ </div>
590
+ </div>
591
+ </div>
592
+
593
+ <div id="method-M000147" class="method-detail">
594
+ <a name="M000147"></a>
595
+
596
+ <div class="method-heading">
597
+ <a href="#M000147" class="method-signature">
598
+ <span class="method-name">do_delete</span><span class="method-args">(path, headers={})</span>
599
+ </a>
600
+ </div>
601
+
602
+ <div class="method-description">
603
+ <p><a class="source-toggle" href="#"
604
+ onclick="toggleCode('M000147-source');return false;">[Source]</a></p>
605
+ <div class="method-source-code" id="M000147-source">
606
+ <pre>
607
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 498</span>
608
+ 498: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">do_delete</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">headers</span>={})
609
+ 499: <span class="ruby-identifier">do_request</span>(<span class="ruby-value str">'DELETE'</span>, <span class="ruby-identifier">path</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">headers</span>)
610
+ 500: <span class="ruby-keyword kw">end</span>
611
+ </pre>
612
+ </div>
613
+ </div>
614
+ </div>
615
+
616
+ <div id="method-M000143" class="method-detail">
617
+ <a name="M000143"></a>
618
+
619
+ <div class="method-heading">
620
+ <a href="#M000143" class="method-signature">
621
+ <span class="method-name">do_get</span><span class="method-args">(path='/', headers={})</span>
622
+ </a>
623
+ </div>
624
+
625
+ <div class="method-description">
626
+ <p><a class="source-toggle" href="#"
627
+ onclick="toggleCode('M000143-source');return false;">[Source]</a></p>
628
+ <div class="method-source-code" id="M000143-source">
629
+ <pre>
630
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 482</span>
631
+ 482: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">do_get</span>(<span class="ruby-identifier">path</span>=<span class="ruby-value str">'/'</span>, <span class="ruby-identifier">headers</span>={})
632
+ 483: <span class="ruby-identifier">do_request</span>(<span class="ruby-value str">'GET'</span>, <span class="ruby-identifier">path</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">headers</span>)
633
+ 484: <span class="ruby-keyword kw">end</span>
634
+ </pre>
635
+ </div>
636
+ </div>
637
+ </div>
638
+
639
+ <div id="method-M000144" class="method-detail">
640
+ <a name="M000144"></a>
641
+
642
+ <div class="method-heading">
643
+ <a href="#M000144" class="method-signature">
644
+ <span class="method-name">do_head</span><span class="method-args">(path='/', headers={})</span>
645
+ </a>
646
+ </div>
647
+
648
+ <div class="method-description">
649
+ <p><a class="source-toggle" href="#"
650
+ onclick="toggleCode('M000144-source');return false;">[Source]</a></p>
651
+ <div class="method-source-code" id="M000144-source">
652
+ <pre>
653
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 486</span>
654
+ 486: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">do_head</span>(<span class="ruby-identifier">path</span>=<span class="ruby-value str">'/'</span>, <span class="ruby-identifier">headers</span>={})
655
+ 487: <span class="ruby-identifier">do_request</span>(<span class="ruby-value str">'HEAD'</span>, <span class="ruby-identifier">path</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">headers</span>)
656
+ 488: <span class="ruby-keyword kw">end</span>
657
+ </pre>
658
+ </div>
659
+ </div>
660
+ </div>
661
+
662
+ <div id="method-M000145" class="method-detail">
663
+ <a name="M000145"></a>
664
+
665
+ <div class="method-heading">
666
+ <a href="#M000145" class="method-signature">
667
+ <span class="method-name">do_post</span><span class="method-args">(path='/', data=nil, headers={})</span>
668
+ </a>
669
+ </div>
670
+
671
+ <div class="method-description">
672
+ <p><a class="source-toggle" href="#"
673
+ onclick="toggleCode('M000145-source');return false;">[Source]</a></p>
674
+ <div class="method-source-code" id="M000145-source">
675
+ <pre>
676
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 490</span>
677
+ 490: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">do_post</span>(<span class="ruby-identifier">path</span>=<span class="ruby-value str">'/'</span>, <span class="ruby-identifier">data</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">headers</span>={})
678
+ 491: <span class="ruby-identifier">do_request</span>(<span class="ruby-value str">'POST'</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">data</span>, <span class="ruby-identifier">headers</span>)
679
+ 492: <span class="ruby-keyword kw">end</span>
680
+ </pre>
681
+ </div>
682
+ </div>
683
+ </div>
684
+
685
+ <div id="method-M000146" class="method-detail">
686
+ <a name="M000146"></a>
687
+
688
+ <div class="method-heading">
689
+ <a href="#M000146" class="method-signature">
690
+ <span class="method-name">do_put</span><span class="method-args">(path='/', data=nil, headers={})</span>
691
+ </a>
692
+ </div>
693
+
694
+ <div class="method-description">
478
695
  <p><a class="source-toggle" href="#"
479
- onclick="toggleCode('M000098-source');return false;">[Source]</a></p>
480
- <div class="method-source-code" id="M000098-source">
696
+ onclick="toggleCode('M000146-source');return false;">[Source]</a></p>
697
+ <div class="method-source-code" id="M000146-source">
481
698
  <pre>
482
- <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 269</span>
483
- 269: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete_resource</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>, <span class="ruby-identifier">headers</span>={})
484
- 270: <span class="ruby-identifier">do_delete</span>(<span class="ruby-node">&quot;/#{bucket_name}/#{resource_key}&quot;</span>, <span class="ruby-identifier">headers</span>)
485
- 271: <span class="ruby-keyword kw">end</span>
699
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 494</span>
700
+ 494: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">do_put</span>(<span class="ruby-identifier">path</span>=<span class="ruby-value str">'/'</span>, <span class="ruby-identifier">data</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">headers</span>={})
701
+ 495: <span class="ruby-identifier">do_request</span>(<span class="ruby-value str">'PUT'</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">data</span>, <span class="ruby-identifier">headers</span>)
702
+ 496: <span class="ruby-keyword kw">end</span>
486
703
  </pre>
487
704
  </div>
488
705
  </div>
489
706
  </div>
490
707
 
491
- <div id="method-M000085" class="method-detail">
492
- <a name="M000085"></a>
708
+ <div id="method-M000117" class="method-detail">
709
+ <a name="M000117"></a>
493
710
 
494
711
  <div class="method-heading">
495
- <a href="#M000085" class="method-signature">
712
+ <a href="#M000117" class="method-signature">
496
713
  <span class="method-name">do_request</span><span class="method-args">(method, path, data=nil, headers={})</span>
497
714
  </a>
498
715
  </div>
@@ -504,87 +721,290 @@ Send a request over the wire.
504
721
  <p>
505
722
  This method streams <tt>data</tt> if it responds to the <tt>stat</tt>
506
723
  method (as files do).
724
+ </p>
725
+ <p>
726
+ Returns a <a href="../Net/HTTPResponse.html">Net::HTTPResponse</a>
727
+ instance.
728
+ </p>
729
+ <p><a class="source-toggle" href="#"
730
+ onclick="toggleCode('M000117-source');return false;">[Source]</a></p>
731
+ <div class="method-source-code" id="M000117-source">
732
+ <pre>
733
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 121</span>
734
+ 121: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">do_request</span>(<span class="ruby-identifier">method</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">data</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">headers</span>={})
735
+ 122: <span class="ruby-identifier">req</span> = <span class="ruby-identifier">get_requester</span>(<span class="ruby-identifier">method</span>, <span class="ruby-identifier">path</span>)
736
+ 123: <span class="ruby-identifier">req</span>.<span class="ruby-identifier">chunk_size</span> = <span class="ruby-ivar">@chunk_size</span>
737
+ 124:
738
+ 125: <span class="ruby-comment cmt"># Add the S3 headers which are always required.</span>
739
+ 126: <span class="ruby-identifier">headers</span> = <span class="ruby-identifier">add_default_headers</span>(<span class="ruby-identifier">headers</span>)
740
+ 127:
741
+ 128: <span class="ruby-comment cmt"># Add any client-specific default headers.</span>
742
+ 129: <span class="ruby-identifier">headers</span> = <span class="ruby-identifier">add_client_headers</span>(<span class="ruby-identifier">headers</span>)
743
+ 130:
744
+ 131: <span class="ruby-comment cmt"># Generate the S3 authorization header.</span>
745
+ 132: <span class="ruby-identifier">headers</span>[<span class="ruby-value str">'Authorization'</span>] = <span class="ruby-identifier">generate_auth_header_value</span>(<span class="ruby-identifier">method</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">headers</span>,
746
+ 133: <span class="ruby-ivar">@aws_access_key</span>, <span class="ruby-ivar">@aws_secret_access_key</span>)
747
+ 134:
748
+ 135: <span class="ruby-comment cmt"># Insert the headers into the request object.</span>
749
+ 136: <span class="ruby-identifier">headers</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
750
+ 137: <span class="ruby-identifier">req</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">value</span>
751
+ 138: <span class="ruby-keyword kw">end</span>
752
+ 139:
753
+ 140: <span class="ruby-comment cmt"># Add data to the request as a stream.</span>
754
+ 141: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">req</span>.<span class="ruby-identifier">request_body_permitted?</span>
755
+ 142: <span class="ruby-comment cmt"># For streaming files; NB Content-Length will be set by Net::HTTP</span>
756
+ 143: <span class="ruby-comment cmt"># for character-based data: this section of code is only used</span>
757
+ 144: <span class="ruby-comment cmt"># when reading directly from a file.</span>
758
+ 145: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">data</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:stat</span>)
759
+ 146: <span class="ruby-identifier">req</span>.<span class="ruby-identifier">body_stream</span> = <span class="ruby-identifier">data</span>
760
+ 147: <span class="ruby-identifier">req</span>[<span class="ruby-value str">'Content-Length'</span>] = <span class="ruby-identifier">data</span>.<span class="ruby-identifier">stat</span>.<span class="ruby-identifier">size</span>.<span class="ruby-identifier">to_s</span>
761
+ 148: <span class="ruby-identifier">data</span> = <span class="ruby-keyword kw">nil</span>
762
+ 149: <span class="ruby-keyword kw">end</span>
763
+ 150: <span class="ruby-keyword kw">else</span>
764
+ 151: <span class="ruby-identifier">data</span> = <span class="ruby-keyword kw">nil</span>
765
+ 152: <span class="ruby-keyword kw">end</span>
766
+ 153:
767
+ 154: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@dump_requests</span>
768
+ 155: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">req</span>.<span class="ruby-identifier">to_s</span>
769
+ 156: <span class="ruby-keyword kw">end</span>
770
+ 157:
771
+ 158: <span class="ruby-comment cmt"># Run the request.</span>
772
+ 159: <span class="ruby-identifier">client</span> = <span class="ruby-identifier">get_client</span>
773
+ 160: <span class="ruby-identifier">client</span>.<span class="ruby-identifier">start</span> <span class="ruby-keyword kw">do</span>
774
+ 161: <span class="ruby-identifier">response</span> = <span class="ruby-identifier">client</span>.<span class="ruby-identifier">request</span>(<span class="ruby-identifier">req</span>, <span class="ruby-identifier">data</span>)
775
+ 162:
776
+ 163: <span class="ruby-comment cmt"># Check the response to see whether S3 is down.</span>
777
+ 164: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">check_s3_availability</span>
778
+ 165:
779
+ 166: <span class="ruby-identifier">response</span>
780
+ 167: <span class="ruby-keyword kw">end</span>
781
+ 168: <span class="ruby-keyword kw">end</span>
782
+ </pre>
783
+ </div>
784
+ </div>
785
+ </div>
786
+
787
+ <div id="method-M000133" class="method-detail">
788
+ <a name="M000133"></a>
789
+
790
+ <div class="method-heading">
791
+ <a href="#M000133" class="method-signature">
792
+ <span class="method-name">enable_log_target</span><span class="method-args">(bucket_name)</span>
793
+ </a>
794
+ </div>
795
+
796
+ <div class="method-description">
797
+ <p>
798
+ Make a bucket capable of being a target for access logging.
799
+ </p>
800
+ <p>
801
+ Returns true if the bucket is now a possible log target; false otherwise.
802
+ </p>
803
+ <p><a class="source-toggle" href="#"
804
+ onclick="toggleCode('M000133-source');return false;">[Source]</a></p>
805
+ <div class="method-source-code" id="M000133-source">
806
+ <pre>
807
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 351</span>
808
+ 351: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">enable_log_target</span>(<span class="ruby-identifier">bucket_name</span>)
809
+ 352: <span class="ruby-identifier">acl</span> = <span class="ruby-identifier">get_acl</span>(<span class="ruby-identifier">bucket_name</span>)
810
+ 353: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">acl</span>.<span class="ruby-identifier">add_log_target_grants</span>
811
+ 354: <span class="ruby-identifier">set_acl</span>(<span class="ruby-identifier">acl</span>, <span class="ruby-identifier">bucket_name</span>)
812
+ 355: <span class="ruby-keyword kw">end</span>
813
+ 356: <span class="ruby-identifier">acl</span>.<span class="ruby-identifier">log_targetable?</span>
814
+ 357: <span class="ruby-keyword kw">end</span>
815
+ </pre>
816
+ </div>
817
+ </div>
818
+ </div>
819
+
820
+ <div id="method-M000135" class="method-detail">
821
+ <a name="M000135"></a>
822
+
823
+ <div class="method-heading">
824
+ <a href="#M000135" class="method-signature">
825
+ <span class="method-name">enable_logging</span><span class="method-args">(bucket_name, log_bucket=nil, options={})</span>
826
+ </a>
827
+ </div>
828
+
829
+ <div class="method-description">
830
+ <p>
831
+ Enable logging for a resource (bucket or key).
832
+ </p>
833
+ <p>
834
+ <tt>log_prefix</tt> is the prefix for the logs. <tt>bucket_name</tt> is the
835
+ bucket to log. <tt>log_bucket</tt> is the bucket to put logs into.
836
+ </p>
837
+ <p>
838
+ options:
839
+ </p>
840
+ <pre>
841
+ +:for_key =&gt; 'key'+ is the (optional) resource to log in the bucket
842
+ (NB this is not currently supported by S3).
843
+ +:log_prefix =&gt; 'prefix'+ is the (optional) log file prefix
844
+ (defaults to bucket_name + '-')
845
+ </pre>
846
+ <p><a class="source-toggle" href="#"
847
+ onclick="toggleCode('M000135-source');return false;">[Source]</a></p>
848
+ <div class="method-source-code" id="M000135-source">
849
+ <pre>
850
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 384</span>
851
+ 384: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">enable_logging</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">log_bucket</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">options</span>={})
852
+ 385: <span class="ruby-identifier">log_bucket</span> <span class="ruby-operator">||=</span> <span class="ruby-ivar">@log_bucket</span>
853
+ 386:
854
+ 387: <span class="ruby-identifier">resource_key</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:for_key</span>]
855
+ 388: <span class="ruby-identifier">resource_key</span> <span class="ruby-operator">||=</span> <span class="ruby-value str">''</span>
856
+ 389:
857
+ 390: <span class="ruby-identifier">log_prefix</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:prefix</span>]
858
+ 391: <span class="ruby-identifier">log_prefix</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">bucket_name</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'-'</span>
859
+ 392:
860
+ 393: <span class="ruby-identifier">log_bucket_acl</span> = <span class="ruby-identifier">get_acl</span>(<span class="ruby-identifier">log_bucket</span>)
861
+ 394: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span>(<span class="ruby-identifier">log_bucket_acl</span>.<span class="ruby-identifier">log_targetable?</span>)
862
+ 395: <span class="ruby-identifier">raise</span> <span class="ruby-constant">BucketNotLogTargetable</span>, <span class="ruby-node">&quot;The bucket #{log_bucket} cannot be specified as a log target&quot;</span>
863
+ 396: <span class="ruby-keyword kw">end</span>
864
+ 397: <span class="ruby-identifier">logging_resource</span> = <span class="ruby-constant">LoggingResource</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">log_bucket</span>, <span class="ruby-identifier">log_prefix</span>)
865
+ 398: <span class="ruby-identifier">set_logging</span>(<span class="ruby-identifier">logging_resource</span>, <span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>)
866
+ 399: <span class="ruby-keyword kw">end</span>
867
+ </pre>
868
+ </div>
869
+ </div>
870
+ </div>
871
+
872
+ <div id="method-M000128" class="method-detail">
873
+ <a name="M000128"></a>
874
+
875
+ <div class="method-heading">
876
+ <a href="#M000128" class="method-signature">
877
+ <span class="method-name">get_acl</span><span class="method-args">(bucket_name, resource_key='')</span>
878
+ </a>
879
+ </div>
880
+
881
+ <div class="method-description">
882
+ <p>
883
+ Fetch the ACL document for a resource.
884
+ </p>
885
+ <p>
886
+ Returns nil if there is a problem with the resource (e.g. it doesn&#8217;t
887
+ exist).
888
+ </p>
889
+ <p><a class="source-toggle" href="#"
890
+ onclick="toggleCode('M000128-source');return false;">[Source]</a></p>
891
+ <div class="method-source-code" id="M000128-source">
892
+ <pre>
893
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 295</span>
894
+ 295: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_acl</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>=<span class="ruby-value str">''</span>)
895
+ 296: <span class="ruby-identifier">path</span> = <span class="ruby-identifier">s3_acl_path</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>)
896
+ 297: <span class="ruby-identifier">response</span> = <span class="ruby-identifier">do_get</span>(<span class="ruby-identifier">path</span>)
897
+ 298: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">ok?</span>
898
+ 299: <span class="ruby-constant">S3ACL</span><span class="ruby-operator">::</span><span class="ruby-constant">ACLDoc</span>.<span class="ruby-identifier">from_xml</span>(<span class="ruby-identifier">response</span>.<span class="ruby-identifier">body</span>)
899
+ 300: <span class="ruby-keyword kw">else</span>
900
+ 301: <span class="ruby-identifier">raise</span> <span class="ruby-constant">S33rException</span><span class="ruby-operator">::</span><span class="ruby-constant">MissingResource</span>, <span class="ruby-node">&quot;Tried to get an ACL from a non-existent resource [#{path}]&quot;</span>
901
+ 302: <span class="ruby-keyword kw">end</span>
902
+ 303: <span class="ruby-keyword kw">end</span>
903
+ </pre>
904
+ </div>
905
+ </div>
906
+ </div>
907
+
908
+ <div id="method-M000114" class="method-detail">
909
+ <a name="M000114"></a>
910
+
911
+ <div class="method-heading">
912
+ <a href="#M000114" class="method-signature">
913
+ <span class="method-name">get_client</span><span class="method-args">()</span>
914
+ </a>
915
+ </div>
916
+
917
+ <div class="method-description">
918
+ <p>
919
+ Get an HTTP client instance.
920
+ </p>
921
+ <p>
922
+ NB this has been moved here so that client instances are only instantiated
923
+ when needed (so <a href="Client.html">Client</a> can be used as an empty
924
+ shell when <a href="Client.html#M000119">list_buckets</a> is called).
507
925
  </p>
508
926
  <p><a class="source-toggle" href="#"
509
- onclick="toggleCode('M000085-source');return false;">[Source]</a></p>
510
- <div class="method-source-code" id="M000085-source">
927
+ onclick="toggleCode('M000114-source');return false;">[Source]</a></p>
928
+ <div class="method-source-code" id="M000114-source">
511
929
  <pre>
512
- <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 97</span>
513
- 97: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">do_request</span>(<span class="ruby-identifier">method</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">data</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">headers</span>={})
514
- 98: <span class="ruby-identifier">req</span> = <span class="ruby-identifier">get_requester</span>(<span class="ruby-identifier">method</span>, <span class="ruby-identifier">path</span>)
515
- 99: <span class="ruby-identifier">req</span>.<span class="ruby-identifier">chunk_size</span> = <span class="ruby-ivar">@chunk_size</span>
516
- 100:
517
- 101: <span class="ruby-comment cmt"># add the S3 headers which are always required</span>
518
- 102: <span class="ruby-identifier">headers</span> = <span class="ruby-identifier">add_default_headers</span>(<span class="ruby-identifier">headers</span>)
519
- 103:
520
- 104: <span class="ruby-comment cmt"># add any client-specific default headers</span>
521
- 105: <span class="ruby-identifier">headers</span> = <span class="ruby-identifier">add_client_headers</span>(<span class="ruby-identifier">headers</span>)
522
- 106:
523
- 107: <span class="ruby-identifier">headers</span>[<span class="ruby-value str">'Authorization'</span>] = <span class="ruby-identifier">generate_auth_header_value</span>(<span class="ruby-identifier">method</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">headers</span>,
524
- 108: <span class="ruby-ivar">@aws_access_key</span>, <span class="ruby-ivar">@aws_secret_access_key</span>)
525
- 109:
526
- 110: <span class="ruby-identifier">headers</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
527
- 111: <span class="ruby-identifier">req</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">value</span>
528
- 112: <span class="ruby-keyword kw">end</span>
529
- 113:
530
- 114: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">req</span>.<span class="ruby-identifier">request_body_permitted?</span>
531
- 115: <span class="ruby-comment cmt"># for streaming files; NB Content-Length will be set by Net::HTTP</span>
532
- 116: <span class="ruby-comment cmt"># for character-based body content</span>
533
- 117: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">data</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:stat</span>)
534
- 118: <span class="ruby-identifier">req</span>.<span class="ruby-identifier">body_stream</span> = <span class="ruby-identifier">data</span>
535
- 119: <span class="ruby-identifier">req</span>[<span class="ruby-value str">'Content-Length'</span>] = <span class="ruby-identifier">data</span>.<span class="ruby-identifier">stat</span>.<span class="ruby-identifier">size</span>.<span class="ruby-identifier">to_s</span>
536
- 120: <span class="ruby-identifier">data</span> = <span class="ruby-keyword kw">nil</span>
537
- 121: <span class="ruby-keyword kw">end</span>
538
- 122: <span class="ruby-keyword kw">else</span>
539
- 123: <span class="ruby-identifier">data</span> = <span class="ruby-keyword kw">nil</span>
540
- 124: <span class="ruby-keyword kw">end</span>
541
- 125:
542
- 126: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@dump_requests</span>
543
- 127: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">req</span>.<span class="ruby-identifier">to_s</span>
544
- 128: <span class="ruby-keyword kw">end</span>
545
- 129:
546
- 130: <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">start</span> <span class="ruby-keyword kw">do</span>
547
- 131: <span class="ruby-identifier">response</span> = <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">request</span>(<span class="ruby-identifier">req</span>, <span class="ruby-identifier">data</span>)
548
- 132: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">check_s3_availability</span>
549
- 133: <span class="ruby-identifier">response</span>
550
- 134: <span class="ruby-keyword kw">end</span>
551
- 135: <span class="ruby-keyword kw">end</span>
930
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 70</span>
931
+ 70: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_client</span>
932
+ 71: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@use_ssl</span>
933
+ 72: <span class="ruby-identifier">client</span> = <span class="ruby-constant">HTTP</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">HOST</span>, <span class="ruby-constant">PORT</span>)
934
+ 73: <span class="ruby-comment cmt"># turn off SSL certificate verification</span>
935
+ 74: <span class="ruby-identifier">client</span>.<span class="ruby-identifier">verify_mode</span> = <span class="ruby-constant">OpenSSL</span><span class="ruby-operator">::</span><span class="ruby-constant">SSL</span><span class="ruby-operator">::</span><span class="ruby-constant">VERIFY_NONE</span>
936
+ 75: <span class="ruby-identifier">client</span>.<span class="ruby-identifier">use_ssl</span> = <span class="ruby-keyword kw">true</span>
937
+ 76: <span class="ruby-keyword kw">else</span>
938
+ 77: <span class="ruby-identifier">client</span> = <span class="ruby-constant">HTTP</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">HOST</span>, <span class="ruby-constant">NON_SSL_PORT</span>)
939
+ 78: <span class="ruby-identifier">client</span>.<span class="ruby-identifier">use_ssl</span> = <span class="ruby-keyword kw">false</span>
940
+ 79: <span class="ruby-keyword kw">end</span>
941
+ 80:
942
+ 81: <span class="ruby-identifier">client</span>
943
+ 82: <span class="ruby-keyword kw">end</span>
552
944
  </pre>
553
945
  </div>
554
946
  </div>
555
947
  </div>
556
948
 
557
- <div id="method-M000094" class="method-detail">
558
- <a name="M000094"></a>
949
+ <div id="method-M000137" class="method-detail">
950
+ <a name="M000137"></a>
559
951
 
560
952
  <div class="method-heading">
561
- <a href="#M000094" class="method-signature">
953
+ <a href="#M000137" class="method-signature">
954
+ <span class="method-name">get_logging</span><span class="method-args">()</span>
955
+ </a>
956
+ </div>
957
+
958
+ <div class="method-description">
959
+ <p>
960
+ TODO
961
+ </p>
962
+ <p><a class="source-toggle" href="#"
963
+ onclick="toggleCode('M000137-source');return false;">[Source]</a></p>
964
+ <div class="method-source-code" id="M000137-source">
965
+ <pre>
966
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 406</span>
967
+ 406: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_logging</span>
968
+ 407: <span class="ruby-keyword kw">end</span>
969
+ </pre>
970
+ </div>
971
+ </div>
972
+ </div>
973
+
974
+ <div id="method-M000127" class="method-detail">
975
+ <a name="M000127"></a>
976
+
977
+ <div class="method-heading">
978
+ <a href="#M000127" class="method-signature">
562
979
  <span class="method-name">get_object</span><span class="method-args">(bucket_name, resource_key, headers)</span>
563
980
  </a>
564
981
  </div>
565
982
 
566
983
  <div class="method-description">
567
984
  <p>
985
+ Fetch an object.
986
+ </p>
987
+ <p>
568
988
  TODO: return <a href="S3Object.html">S3Object</a>
569
989
  </p>
570
990
  <p><a class="source-toggle" href="#"
571
- onclick="toggleCode('M000094-source');return false;">[Source]</a></p>
572
- <div class="method-source-code" id="M000094-source">
991
+ onclick="toggleCode('M000127-source');return false;">[Source]</a></p>
992
+ <div class="method-source-code" id="M000127-source">
573
993
  <pre>
574
- <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 210</span>
575
- 210: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_object</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>, <span class="ruby-identifier">headers</span>)
576
- 211: <span class="ruby-identifier">response</span> = <span class="ruby-identifier">get_resource</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>, <span class="ruby-identifier">headers</span>)
577
- 212: <span class="ruby-keyword kw">end</span>
994
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 287</span>
995
+ 287: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_object</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>, <span class="ruby-identifier">headers</span>)
996
+ 288: <span class="ruby-identifier">response</span> = <span class="ruby-identifier">get_resource</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>, <span class="ruby-identifier">headers</span>)
997
+ 289: <span class="ruby-keyword kw">end</span>
578
998
  </pre>
579
999
  </div>
580
1000
  </div>
581
1001
  </div>
582
1002
 
583
- <div id="method-M000086" class="method-detail">
584
- <a name="M000086"></a>
1003
+ <div id="method-M000118" class="method-detail">
1004
+ <a name="M000118"></a>
585
1005
 
586
1006
  <div class="method-heading">
587
- <a href="#M000086" class="method-signature">
1007
+ <a href="#M000118" class="method-signature">
588
1008
  <span class="method-name">get_requester</span><span class="method-args">(method, path)</span>
589
1009
  </a>
590
1010
  </div>
@@ -594,24 +1014,24 @@ TODO: return <a href="S3Object.html">S3Object</a>
594
1014
  Return an instance of an appropriate request class.
595
1015
  </p>
596
1016
  <p><a class="source-toggle" href="#"
597
- onclick="toggleCode('M000086-source');return false;">[Source]</a></p>
598
- <div class="method-source-code" id="M000086-source">
1017
+ onclick="toggleCode('M000118-source');return false;">[Source]</a></p>
1018
+ <div class="method-source-code" id="M000118-source">
599
1019
  <pre>
600
- <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 138</span>
601
- 138: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_requester</span>(<span class="ruby-identifier">method</span>, <span class="ruby-identifier">path</span>)
602
- 139: <span class="ruby-identifier">raise</span> <span class="ruby-constant">S33rException</span><span class="ruby-operator">::</span><span class="ruby-constant">UnsupportedHTTPMethod</span>, <span class="ruby-node">&quot;The #{method} HTTP method is not supported&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span>(<span class="ruby-constant">METHOD_VERBS</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">method</span>))
603
- 140: <span class="ruby-identifier">eval</span>(<span class="ruby-value str">&quot;HTTP::&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">method</span>[<span class="ruby-value">0</span>,<span class="ruby-value">1</span>].<span class="ruby-identifier">upcase</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">method</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>].<span class="ruby-identifier">downcase</span> <span class="ruby-operator">+</span> <span class="ruby-node">&quot;.new('#{path}')&quot;</span>)
604
- 141: <span class="ruby-keyword kw">end</span>
1020
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 171</span>
1021
+ 171: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_requester</span>(<span class="ruby-identifier">method</span>, <span class="ruby-identifier">path</span>)
1022
+ 172: <span class="ruby-identifier">raise</span> <span class="ruby-constant">S33rException</span><span class="ruby-operator">::</span><span class="ruby-constant">UnsupportedHTTPMethod</span>, <span class="ruby-node">&quot;The #{method} HTTP method is not supported&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span>(<span class="ruby-constant">METHOD_VERBS</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">method</span>))
1023
+ 173: <span class="ruby-identifier">eval</span>(<span class="ruby-value str">&quot;HTTP::&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">method</span>[<span class="ruby-value">0</span>,<span class="ruby-value">1</span>].<span class="ruby-identifier">upcase</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">method</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>].<span class="ruby-identifier">downcase</span> <span class="ruby-operator">+</span> <span class="ruby-node">&quot;.new('#{path}')&quot;</span>)
1024
+ 174: <span class="ruby-keyword kw">end</span>
605
1025
  </pre>
606
1026
  </div>
607
1027
  </div>
608
1028
  </div>
609
1029
 
610
- <div id="method-M000093" class="method-detail">
611
- <a name="M000093"></a>
1030
+ <div id="method-M000125" class="method-detail">
1031
+ <a name="M000125"></a>
612
1032
 
613
1033
  <div class="method-heading">
614
- <a href="#M000093" class="method-signature">
1034
+ <a href="#M000125" class="method-signature">
615
1035
  <span class="method-name">get_resource</span><span class="method-args">(bucket_name, resource_key, headers={})</span>
616
1036
  </a>
617
1037
  </div>
@@ -621,49 +1041,49 @@ Return an instance of an appropriate request class.
621
1041
  Fetch a resource.
622
1042
  </p>
623
1043
  <p><a class="source-toggle" href="#"
624
- onclick="toggleCode('M000093-source');return false;">[Source]</a></p>
625
- <div class="method-source-code" id="M000093-source">
1044
+ onclick="toggleCode('M000125-source');return false;">[Source]</a></p>
1045
+ <div class="method-source-code" id="M000125-source">
626
1046
  <pre>
627
- <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 205</span>
628
- 205: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_resource</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>, <span class="ruby-identifier">headers</span>={})
629
- 206: <span class="ruby-identifier">do_get</span>(<span class="ruby-node">&quot;/#{bucket_name}/#{resource_key}&quot;</span>, <span class="ruby-identifier">headers</span>)
630
- 207: <span class="ruby-keyword kw">end</span>
1047
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 271</span>
1048
+ 271: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_resource</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>, <span class="ruby-identifier">headers</span>={})
1049
+ 272: <span class="ruby-identifier">do_get</span>(<span class="ruby-node">&quot;/#{bucket_name}/#{resource_key}&quot;</span>, <span class="ruby-identifier">headers</span>)
1050
+ 273: <span class="ruby-keyword kw">end</span>
631
1051
  </pre>
632
1052
  </div>
633
1053
  </div>
634
1054
  </div>
635
1055
 
636
- <div id="method-M000092" class="method-detail">
637
- <a name="M000092"></a>
1056
+ <div id="method-M000120" class="method-detail">
1057
+ <a name="M000120"></a>
638
1058
 
639
1059
  <div class="method-heading">
640
- <a href="#M000092" class="method-signature">
641
- <span class="method-name">head_resource</span><span class="method-args">(bucket_name, resource_key, headers={})</span>
1060
+ <a href="#M000120" class="method-signature">
1061
+ <span class="method-name">list</span><span class="method-args">()</span>
642
1062
  </a>
643
1063
  </div>
644
1064
 
645
1065
  <div class="method-description">
646
1066
  <p>
647
- Fetch head info for a key in a bucket.
1067
+ List just bucket names.
648
1068
  </p>
649
1069
  <p><a class="source-toggle" href="#"
650
- onclick="toggleCode('M000092-source');return false;">[Source]</a></p>
651
- <div class="method-source-code" id="M000092-source">
1070
+ onclick="toggleCode('M000120-source');return false;">[Source]</a></p>
1071
+ <div class="method-source-code" id="M000120-source">
652
1072
  <pre>
653
- <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 200</span>
654
- 200: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">head_resource</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>, <span class="ruby-identifier">headers</span>={})
655
- 201: <span class="ruby-identifier">do_head</span>(<span class="ruby-node">&quot;/#{bucket_name}/#{resource_key}&quot;</span>, <span class="ruby-identifier">headers</span>)
656
- 202: <span class="ruby-keyword kw">end</span>
1073
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 195</span>
1074
+ 195: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">list</span>
1075
+ 196: <span class="ruby-identifier">list_buckets</span>.<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">bucket</span><span class="ruby-operator">|</span> <span class="ruby-identifier">bucket</span>.<span class="ruby-identifier">name</span>}
1076
+ 197: <span class="ruby-keyword kw">end</span>
657
1077
  </pre>
658
1078
  </div>
659
1079
  </div>
660
1080
  </div>
661
1081
 
662
- <div id="method-M000088" class="method-detail">
663
- <a name="M000088"></a>
1082
+ <div id="method-M000121" class="method-detail">
1083
+ <a name="M000121"></a>
664
1084
 
665
1085
  <div class="method-heading">
666
- <a href="#M000088" class="method-signature">
1086
+ <a href="#M000121" class="method-signature">
667
1087
  <span class="method-name">list_bucket</span><span class="method-args">(bucket_name, query_params={})</span>
668
1088
  </a>
669
1089
  </div>
@@ -696,36 +1116,59 @@ CommonPrefixes element inside the response
696
1116
 
697
1117
  </li>
698
1118
  </ul>
1119
+ <p>
1120
+ NB if you pass a :marker, this takes up one of your :max_keys; so if you
1121
+ are fetching page two from a bucket, and you want 10 items, you need to set
1122
+ :max_keys to 11.
1123
+ </p>
1124
+ <p>
1125
+ To page through a bucket 10 keys at a time, you can do:
1126
+ </p>
1127
+ <pre>
1128
+ resp, listing = list_bucket('mybucket', :max_keys =&gt; 10)
1129
+ resp, listing = list_bucket('mybucket', :max_keys =&gt; 11, :marker =&gt; listing.last_key)
1130
+ resp, listing = list_bucket('mybucket', :max_keys =&gt; 11, :marker =&gt; listing.last_key)
1131
+ etc.
1132
+ </pre>
1133
+ <p>
1134
+ Note in the example code, <tt>listing</tt> is a <a
1135
+ href="BucketListing.html">BucketListing</a> instance; call its contents
1136
+ method to get a hash of the keys in the bucket, along with associated
1137
+ objects.
1138
+ </p>
1139
+ <p>
1140
+ Returns [raw_response, <a href="BucketListing.html">BucketListing</a>
1141
+ instance].
1142
+ </p>
699
1143
  <p><a class="source-toggle" href="#"
700
- onclick="toggleCode('M000088-source');return false;">[Source]</a></p>
701
- <div class="method-source-code" id="M000088-source">
1144
+ onclick="toggleCode('M000121-source');return false;">[Source]</a></p>
1145
+ <div class="method-source-code" id="M000121-source">
702
1146
  <pre>
703
- <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 157</span>
704
- 157: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">list_bucket</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">query_params</span>={})
705
- 158: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">query_params</span>[<span class="ruby-identifier">:max_keys</span>]
706
- 159: <span class="ruby-identifier">max_keys</span> = <span class="ruby-identifier">query_params</span>[<span class="ruby-identifier">:max_keys</span>].<span class="ruby-identifier">to_i</span>
707
- 160: <span class="ruby-identifier">raise</span> <span class="ruby-constant">S33rException</span><span class="ruby-operator">::</span><span class="ruby-constant">BucketListingMaxKeysError</span>, <span class="ruby-node">&quot;max_keys option to list bucket cannot be &gt; #{BUCKET_LIST_MAX_MAX_KEYS}&quot;</span> \
708
- 161: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">max_keys</span> <span class="ruby-operator">&gt;</span> <span class="ruby-constant">BUCKET_LIST_MAX_MAX_KEYS</span>
709
- 162:
710
- 163: <span class="ruby-comment cmt"># take out the max_keys parameter and move it to max-keys</span>
711
- 164: <span class="ruby-identifier">query_params</span>[<span class="ruby-value str">'max-keys'</span>] = <span class="ruby-identifier">query_params</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:max_keys</span>)
712
- 165: <span class="ruby-keyword kw">end</span>
713
- 166:
714
- 167: <span class="ruby-identifier">resp</span> = <span class="ruby-identifier">do_get</span>(<span class="ruby-node">&quot;/#{bucket_name}&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">generate_querystring</span>(<span class="ruby-identifier">query_params</span>))
715
- 168: <span class="ruby-identifier">bucket_listing</span> = <span class="ruby-constant">BucketListing</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">resp</span>.<span class="ruby-identifier">body</span>)
716
- 169:
717
- 170: [<span class="ruby-identifier">resp</span>, <span class="ruby-identifier">bucket_listing</span>]
718
- 171: <span class="ruby-keyword kw">end</span>
1147
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 223</span>
1148
+ 223: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">list_bucket</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">query_params</span>={})
1149
+ 224: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">query_params</span>[<span class="ruby-identifier">:max_keys</span>]
1150
+ 225: <span class="ruby-identifier">max_keys</span> = <span class="ruby-identifier">query_params</span>[<span class="ruby-identifier">:max_keys</span>].<span class="ruby-identifier">to_i</span>
1151
+ 226: <span class="ruby-identifier">raise</span> <span class="ruby-constant">S33rException</span><span class="ruby-operator">::</span><span class="ruby-constant">BucketListingMaxKeysError</span>, <span class="ruby-node">&quot;max_keys option to list bucket cannot be &gt; #{BUCKET_LIST_MAX_MAX_KEYS}&quot;</span> \
1152
+ 227: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">max_keys</span> <span class="ruby-operator">&gt;</span> <span class="ruby-constant">BUCKET_LIST_MAX_MAX_KEYS</span>
1153
+ 228:
1154
+ 229: <span class="ruby-comment cmt"># convert max_keys parameter to :max-keys parameter</span>
1155
+ 230: <span class="ruby-identifier">query_params</span>[<span class="ruby-value str">'max-keys'</span>] = <span class="ruby-identifier">query_params</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:max_keys</span>)
1156
+ 231: <span class="ruby-keyword kw">end</span>
1157
+ 232:
1158
+ 233: <span class="ruby-identifier">resp</span> = <span class="ruby-identifier">do_get</span>(<span class="ruby-node">&quot;/#{bucket_name}&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">generate_querystring</span>(<span class="ruby-identifier">query_params</span>))
1159
+ 234:
1160
+ 235: [<span class="ruby-identifier">resp</span>, <span class="ruby-constant">BucketListing</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">resp</span>.<span class="ruby-identifier">body</span>)]
1161
+ 236: <span class="ruby-keyword kw">end</span>
719
1162
  </pre>
720
1163
  </div>
721
1164
  </div>
722
1165
  </div>
723
1166
 
724
- <div id="method-M000087" class="method-detail">
725
- <a name="M000087"></a>
1167
+ <div id="method-M000119" class="method-detail">
1168
+ <a name="M000119"></a>
726
1169
 
727
1170
  <div class="method-heading">
728
- <a href="#M000087" class="method-signature">
1171
+ <a href="#M000119" class="method-signature">
729
1172
  <span class="method-name">list_buckets</span><span class="method-args">()</span>
730
1173
  </a>
731
1174
  </div>
@@ -733,25 +1176,98 @@ CommonPrefixes element inside the response
733
1176
  <div class="method-description">
734
1177
  <p>
735
1178
  List all buckets.
1179
+ </p>
1180
+ <p>
1181
+ Returns an Array of <a href="NamedBucket.html">NamedBucket</a> instances.
1182
+ </p>
1183
+ <p><a class="source-toggle" href="#"
1184
+ onclick="toggleCode('M000119-source');return false;">[Source]</a></p>
1185
+ <div class="method-source-code" id="M000119-source">
1186
+ <pre>
1187
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 179</span>
1188
+ 179: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">list_buckets</span>
1189
+ 180: <span class="ruby-identifier">bucket_list_xml</span> = <span class="ruby-identifier">do_get</span>(<span class="ruby-value str">'/'</span>).<span class="ruby-identifier">body</span>
1190
+ 181: <span class="ruby-identifier">doc</span> = <span class="ruby-constant">XML</span>.<span class="ruby-identifier">get_xml_doc</span>(<span class="ruby-constant">S33r</span>.<span class="ruby-identifier">remove_namespace</span>(<span class="ruby-identifier">bucket_list_xml</span>))
1191
+ 182:
1192
+ 183: <span class="ruby-identifier">named_buckets</span> = []
1193
+ 184:
1194
+ 185: <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">find</span>(<span class="ruby-value str">&quot;//Bucket&quot;</span>).<span class="ruby-identifier">to_a</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">node</span><span class="ruby-operator">|</span>
1195
+ 186: <span class="ruby-identifier">bucket_name</span> = <span class="ruby-identifier">node</span>.<span class="ruby-identifier">xget</span>(<span class="ruby-value str">'Name'</span>)
1196
+ 187: <span class="ruby-identifier">named_buckets</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">NamedBucket</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@aws_access_key</span>, <span class="ruby-ivar">@aws_secret_access_key</span>,
1197
+ 188: {<span class="ruby-identifier">:default_bucket</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">:dump_request</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dump_requests</span>})
1198
+ 189: <span class="ruby-keyword kw">end</span>
1199
+ 190:
1200
+ 191: <span class="ruby-identifier">named_buckets</span>
1201
+ 192: <span class="ruby-keyword kw">end</span>
1202
+ </pre>
1203
+ </div>
1204
+ </div>
1205
+ </div>
1206
+
1207
+ <div id="method-M000132" class="method-detail">
1208
+ <a name="M000132"></a>
1209
+
1210
+ <div class="method-heading">
1211
+ <a href="#M000132" class="method-signature">
1212
+ <span class="method-name">make_private</span><span class="method-args">()</span>
1213
+ </a>
1214
+ </div>
1215
+
1216
+ <div class="method-description">
1217
+ <p>
1218
+ TODO
1219
+ </p>
1220
+ <p><a class="source-toggle" href="#"
1221
+ onclick="toggleCode('M000132-source');return false;">[Source]</a></p>
1222
+ <div class="method-source-code" id="M000132-source">
1223
+ <pre>
1224
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 342</span>
1225
+ 342: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">make_private</span>
1226
+ 343: <span class="ruby-keyword kw">end</span>
1227
+ </pre>
1228
+ </div>
1229
+ </div>
1230
+ </div>
1231
+
1232
+ <div id="method-M000131" class="method-detail">
1233
+ <a name="M000131"></a>
1234
+
1235
+ <div class="method-heading">
1236
+ <a href="#M000131" class="method-signature">
1237
+ <span class="method-name">make_public</span><span class="method-args">(bucket_name, resource_key='')</span>
1238
+ </a>
1239
+ </div>
1240
+
1241
+ <div class="method-description">
1242
+ <p>
1243
+ Make a resource public (i.e. grant READ permissions to the AllUsers group
1244
+ type). NB separate method is used on buckets, to make all of their content
1245
+ public too.
1246
+ </p>
1247
+ <p>
1248
+ Returns nil if resource does not exist.
736
1249
  </p>
737
1250
  <p><a class="source-toggle" href="#"
738
- onclick="toggleCode('M000087-source');return false;">[Source]</a></p>
739
- <div class="method-source-code" id="M000087-source">
1251
+ onclick="toggleCode('M000131-source');return false;">[Source]</a></p>
1252
+ <div class="method-source-code" id="M000131-source">
740
1253
  <pre>
741
- <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 144</span>
742
- 144: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">list_buckets</span>
743
- 145: <span class="ruby-identifier">do_get</span>(<span class="ruby-value str">'/'</span>)
744
- 146: <span class="ruby-keyword kw">end</span>
1254
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 334</span>
1255
+ 334: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">make_public</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>=<span class="ruby-value str">''</span>)
1256
+ 335: <span class="ruby-identifier">acl</span> = <span class="ruby-identifier">get_acl</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>)
1257
+ 336: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">acl</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">acl</span>.<span class="ruby-identifier">add_public_read_grants</span>
1258
+ 337: <span class="ruby-identifier">set_acl</span>(<span class="ruby-identifier">acl</span>, <span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>)
1259
+ 338: <span class="ruby-keyword kw">end</span>
1260
+ 339: <span class="ruby-keyword kw">end</span>
745
1261
  </pre>
746
1262
  </div>
747
1263
  </div>
748
1264
  </div>
749
1265
 
750
- <div id="method-M000097" class="method-detail">
751
- <a name="M000097"></a>
1266
+ <div id="method-M000140" class="method-detail">
1267
+ <a name="M000140"></a>
752
1268
 
753
1269
  <div class="method-heading">
754
- <a href="#M000097" class="method-signature">
1270
+ <a href="#M000140" class="method-signature">
755
1271
  <span class="method-name">put_file</span><span class="method-args">(filename, bucket_name, resource_key=nil, headers={}, options={})</span>
756
1272
  </a>
757
1273
  </div>
@@ -786,49 +1302,49 @@ Note that this method uses a handle to the file, so it can be streamed in
786
1302
  chunks to S3.
787
1303
  </p>
788
1304
  <p><a class="source-toggle" href="#"
789
- onclick="toggleCode('M000097-source');return false;">[Source]</a></p>
790
- <div class="method-source-code" id="M000097-source">
1305
+ onclick="toggleCode('M000140-source');return false;">[Source]</a></p>
1306
+ <div class="method-source-code" id="M000140-source">
791
1307
  <pre>
792
- <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 238</span>
793
- 238: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">put_file</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">headers</span>={}, <span class="ruby-identifier">options</span>={})
794
- 239: <span class="ruby-comment cmt"># default to the file path as the resource key if none explicitly set</span>
795
- 240: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resource_key</span>.<span class="ruby-identifier">nil?</span>
796
- 241: <span class="ruby-identifier">resource_key</span> = <span class="ruby-identifier">filename</span>
797
- 242: <span class="ruby-keyword kw">end</span>
798
- 243:
799
- 244: <span class="ruby-comment cmt"># set Content-Disposition header</span>
800
- 245: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:render_as_attachment</span>]
801
- 246: <span class="ruby-identifier">headers</span>[<span class="ruby-value str">'Content-Disposition'</span>] = <span class="ruby-node">&quot;attachment; filename=#{File.basename(filename)}&quot;</span>
802
- 247: <span class="ruby-keyword kw">end</span>
803
- 248:
804
- 249: <span class="ruby-comment cmt"># content type is explicitly set in the headers, so apply to request</span>
805
- 250: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">headers</span>[<span class="ruby-identifier">:content_type</span>]
806
- 251: <span class="ruby-comment cmt"># use the first MIME type corresponding to this content type string</span>
807
- 252: <span class="ruby-comment cmt"># (MIME::Types returns an array of possible MIME types)</span>
808
- 253: <span class="ruby-identifier">mime_type</span> = <span class="ruby-constant">MIME</span><span class="ruby-operator">::</span><span class="ruby-constant">Types</span>[<span class="ruby-identifier">headers</span>[<span class="ruby-identifier">:content_type</span>]][<span class="ruby-value">0</span>]
809
- 254: <span class="ruby-keyword kw">else</span>
810
- 255: <span class="ruby-identifier">mime_type</span> = <span class="ruby-identifier">guess_mime_type</span>(<span class="ruby-identifier">filename</span>)
811
- 256: <span class="ruby-keyword kw">end</span>
812
- 257: <span class="ruby-identifier">content_type</span> = <span class="ruby-identifier">mime_type</span>.<span class="ruby-identifier">simplified</span>
813
- 258: <span class="ruby-identifier">headers</span>[<span class="ruby-value str">'Content-Type'</span>] = <span class="ruby-identifier">content_type</span>
814
- 259: <span class="ruby-identifier">headers</span>[<span class="ruby-value str">'Content-Transfer-Encoding'</span>] = <span class="ruby-value str">'binary'</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">mime_type</span>.<span class="ruby-identifier">binary?</span>
815
- 260:
816
- 261: <span class="ruby-comment cmt"># the data we want to put (handle to file, so we can stream from it)</span>
817
- 262: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">filename</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
818
- 263: <span class="ruby-comment cmt"># send the put request</span>
819
- 264: <span class="ruby-identifier">put_resource</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>, <span class="ruby-identifier">data</span>, <span class="ruby-identifier">headers</span>)
820
- 265: <span class="ruby-keyword kw">end</span>
821
- 266: <span class="ruby-keyword kw">end</span>
1308
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 433</span>
1309
+ 433: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">put_file</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">headers</span>={}, <span class="ruby-identifier">options</span>={})
1310
+ 434: <span class="ruby-comment cmt"># default to the file path as the resource key if none explicitly set</span>
1311
+ 435: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resource_key</span>.<span class="ruby-identifier">nil?</span>
1312
+ 436: <span class="ruby-identifier">resource_key</span> = <span class="ruby-identifier">filename</span>
1313
+ 437: <span class="ruby-keyword kw">end</span>
1314
+ 438:
1315
+ 439: <span class="ruby-comment cmt"># set Content-Disposition header</span>
1316
+ 440: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:render_as_attachment</span>]
1317
+ 441: <span class="ruby-identifier">headers</span>[<span class="ruby-value str">'Content-Disposition'</span>] = <span class="ruby-node">&quot;attachment; filename=#{File.basename(filename)}&quot;</span>
1318
+ 442: <span class="ruby-keyword kw">end</span>
1319
+ 443:
1320
+ 444: <span class="ruby-comment cmt"># content type is explicitly set in the headers, so apply to request</span>
1321
+ 445: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">headers</span>[<span class="ruby-identifier">:content_type</span>]
1322
+ 446: <span class="ruby-comment cmt"># use the first MIME type corresponding to this content type string</span>
1323
+ 447: <span class="ruby-comment cmt"># (MIME::Types returns an array of possible MIME types)</span>
1324
+ 448: <span class="ruby-identifier">mime_type</span> = <span class="ruby-constant">MIME</span><span class="ruby-operator">::</span><span class="ruby-constant">Types</span>[<span class="ruby-identifier">headers</span>[<span class="ruby-identifier">:content_type</span>]][<span class="ruby-value">0</span>]
1325
+ 449: <span class="ruby-keyword kw">else</span>
1326
+ 450: <span class="ruby-identifier">mime_type</span> = <span class="ruby-identifier">guess_mime_type</span>(<span class="ruby-identifier">filename</span>)
1327
+ 451: <span class="ruby-keyword kw">end</span>
1328
+ 452: <span class="ruby-identifier">content_type</span> = <span class="ruby-identifier">mime_type</span>.<span class="ruby-identifier">simplified</span>
1329
+ 453: <span class="ruby-identifier">headers</span>[<span class="ruby-value str">'Content-Type'</span>] = <span class="ruby-identifier">content_type</span>
1330
+ 454: <span class="ruby-identifier">headers</span>[<span class="ruby-value str">'Content-Transfer-Encoding'</span>] = <span class="ruby-value str">'binary'</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">mime_type</span>.<span class="ruby-identifier">binary?</span>
1331
+ 455:
1332
+ 456: <span class="ruby-comment cmt"># the data we want to put (handle to file, so we can stream from it)</span>
1333
+ 457: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">filename</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
1334
+ 458: <span class="ruby-comment cmt"># send the put request</span>
1335
+ 459: <span class="ruby-identifier">put_resource</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>, <span class="ruby-identifier">data</span>, <span class="ruby-identifier">headers</span>)
1336
+ 460: <span class="ruby-keyword kw">end</span>
1337
+ 461: <span class="ruby-keyword kw">end</span>
822
1338
  </pre>
823
1339
  </div>
824
1340
  </div>
825
1341
  </div>
826
1342
 
827
- <div id="method-M000095" class="method-detail">
828
- <a name="M000095"></a>
1343
+ <div id="method-M000138" class="method-detail">
1344
+ <a name="M000138"></a>
829
1345
 
830
1346
  <div class="method-heading">
831
- <a href="#M000095" class="method-signature">
1347
+ <a href="#M000138" class="method-signature">
832
1348
  <span class="method-name">put_resource</span><span class="method-args">(bucket_name, resource_key, data, headers={})</span>
833
1349
  </a>
834
1350
  </div>
@@ -838,23 +1354,23 @@ chunks to S3.
838
1354
  Put some generic resource onto S3.
839
1355
  </p>
840
1356
  <p><a class="source-toggle" href="#"
841
- onclick="toggleCode('M000095-source');return false;">[Source]</a></p>
842
- <div class="method-source-code" id="M000095-source">
1357
+ onclick="toggleCode('M000138-source');return false;">[Source]</a></p>
1358
+ <div class="method-source-code" id="M000138-source">
843
1359
  <pre>
844
- <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 215</span>
845
- 215: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">put_resource</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>, <span class="ruby-identifier">data</span>, <span class="ruby-identifier">headers</span>={})
846
- 216: <span class="ruby-identifier">do_put</span>(<span class="ruby-node">&quot;/#{bucket_name}/&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-node">&quot;#{CGI::escape(resource_key)}&quot;</span>, <span class="ruby-identifier">data</span>, <span class="ruby-identifier">headers</span>)
847
- 217: <span class="ruby-keyword kw">end</span>
1360
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 410</span>
1361
+ 410: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">put_resource</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>, <span class="ruby-identifier">data</span>, <span class="ruby-identifier">headers</span>={})
1362
+ 411: <span class="ruby-identifier">do_put</span>(<span class="ruby-node">&quot;/#{bucket_name}/&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-node">&quot;#{CGI::escape(resource_key)}&quot;</span>, <span class="ruby-identifier">data</span>, <span class="ruby-identifier">headers</span>)
1363
+ 412: <span class="ruby-keyword kw">end</span>
848
1364
  </pre>
849
1365
  </div>
850
1366
  </div>
851
1367
  </div>
852
1368
 
853
- <div id="method-M000096" class="method-detail">
854
- <a name="M000096"></a>
1369
+ <div id="method-M000139" class="method-detail">
1370
+ <a name="M000139"></a>
855
1371
 
856
1372
  <div class="method-heading">
857
- <a href="#M000096" class="method-signature">
1373
+ <a href="#M000139" class="method-signature">
858
1374
  <span class="method-name">put_text</span><span class="method-args">(string, bucket_name, resource_key, headers={})</span>
859
1375
  </a>
860
1376
  </div>
@@ -864,157 +1380,115 @@ Put some generic resource onto S3.
864
1380
  Put a string onto S3.
865
1381
  </p>
866
1382
  <p><a class="source-toggle" href="#"
867
- onclick="toggleCode('M000096-source');return false;">[Source]</a></p>
868
- <div class="method-source-code" id="M000096-source">
1383
+ onclick="toggleCode('M000139-source');return false;">[Source]</a></p>
1384
+ <div class="method-source-code" id="M000139-source">
869
1385
  <pre>
870
- <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 220</span>
871
- 220: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">put_text</span>(<span class="ruby-identifier">string</span>, <span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>, <span class="ruby-identifier">headers</span>={})
872
- 221: <span class="ruby-identifier">headers</span>[<span class="ruby-value str">&quot;Content-Type&quot;</span>] = <span class="ruby-value str">&quot;text/plain&quot;</span>
873
- 222: <span class="ruby-identifier">put_resource</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>, <span class="ruby-identifier">string</span>, <span class="ruby-identifier">headers</span>)
874
- 223: <span class="ruby-keyword kw">end</span>
1386
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 415</span>
1387
+ 415: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">put_text</span>(<span class="ruby-identifier">string</span>, <span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>, <span class="ruby-identifier">headers</span>={})
1388
+ 416: <span class="ruby-identifier">headers</span>[<span class="ruby-value str">&quot;Content-Type&quot;</span>] = <span class="ruby-value str">&quot;text/plain&quot;</span>
1389
+ 417: <span class="ruby-identifier">put_resource</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>, <span class="ruby-identifier">string</span>, <span class="ruby-identifier">headers</span>)
1390
+ 418: <span class="ruby-keyword kw">end</span>
875
1391
  </pre>
876
1392
  </div>
877
1393
  </div>
878
1394
  </div>
879
1395
 
880
- <div id="method-M000084" class="method-detail">
881
- <a name="M000084"></a>
1396
+ <div id="method-M000126" class="method-detail">
1397
+ <a name="M000126"></a>
882
1398
 
883
1399
  <div class="method-heading">
884
- <a href="#M000084" class="method-signature">
885
- <span class="method-name">use_ssl?</span><span class="method-args">()</span>
1400
+ <a href="#M000126" class="method-signature">
1401
+ <span class="method-name">resource_exists?</span><span class="method-args">(bucket_name, resource_key=nil)</span>
886
1402
  </a>
887
1403
  </div>
888
1404
 
889
1405
  <div class="method-description">
890
1406
  <p>
891
- Wrapper round embedded client <tt>use_ssl</tt> accessor.
1407
+ Check whether a bucket contains a key.
1408
+ </p>
1409
+ <p>
1410
+ Returns true if resource_key exists inside bucket_name exists.
892
1411
  </p>
893
1412
  <p><a class="source-toggle" href="#"
894
- onclick="toggleCode('M000084-source');return false;">[Source]</a></p>
895
- <div class="method-source-code" id="M000084-source">
896
- <pre>
897
- <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 89</span>
898
- 89: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">use_ssl?</span>
899
- 90: <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">use_ssl</span>
900
- 91: <span class="ruby-keyword kw">end</span>
901
- </pre>
902
- </div>
903
- </div>
904
- </div>
905
-
906
- <h3 class="section-bar">Protected Instance methods</h3>
907
-
908
- <div id="method-M000104" class="method-detail">
909
- <a name="M000104"></a>
910
-
911
- <div class="method-heading">
912
- <a href="#M000104" class="method-signature">
913
- <span class="method-name">do_delete</span><span class="method-args">(path, headers={})</span>
914
- </a>
915
- </div>
916
-
917
- <div class="method-description">
918
- <p><a class="source-toggle" href="#"
919
- onclick="toggleCode('M000104-source');return false;">[Source]</a></p>
920
- <div class="method-source-code" id="M000104-source">
921
- <pre>
922
- <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 300</span>
923
- 300: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">do_delete</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">headers</span>={})
924
- 301: <span class="ruby-identifier">do_request</span>(<span class="ruby-value str">'DELETE'</span>, <span class="ruby-identifier">path</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">headers</span>)
925
- 302: <span class="ruby-keyword kw">end</span>
926
- </pre>
927
- </div>
928
- </div>
929
- </div>
930
-
931
- <div id="method-M000100" class="method-detail">
932
- <a name="M000100"></a>
933
-
934
- <div class="method-heading">
935
- <a href="#M000100" class="method-signature">
936
- <span class="method-name">do_get</span><span class="method-args">(path='/', headers={})</span>
937
- </a>
938
- </div>
939
-
940
- <div class="method-description">
941
- <p><a class="source-toggle" href="#"
942
- onclick="toggleCode('M000100-source');return false;">[Source]</a></p>
943
- <div class="method-source-code" id="M000100-source">
944
- <pre>
945
- <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 284</span>
946
- 284: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">do_get</span>(<span class="ruby-identifier">path</span>=<span class="ruby-value str">'/'</span>, <span class="ruby-identifier">headers</span>={})
947
- 285: <span class="ruby-identifier">do_request</span>(<span class="ruby-value str">'GET'</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">headers</span>)
948
- 286: <span class="ruby-keyword kw">end</span>
949
- </pre>
950
- </div>
951
- </div>
952
- </div>
953
-
954
- <div id="method-M000101" class="method-detail">
955
- <a name="M000101"></a>
956
-
957
- <div class="method-heading">
958
- <a href="#M000101" class="method-signature">
959
- <span class="method-name">do_head</span><span class="method-args">(path='/', headers={})</span>
960
- </a>
961
- </div>
962
-
963
- <div class="method-description">
964
- <p><a class="source-toggle" href="#"
965
- onclick="toggleCode('M000101-source');return false;">[Source]</a></p>
966
- <div class="method-source-code" id="M000101-source">
1413
+ onclick="toggleCode('M000126-source');return false;">[Source]</a></p>
1414
+ <div class="method-source-code" id="M000126-source">
967
1415
  <pre>
968
- <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 288</span>
969
- 288: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">do_head</span>(<span class="ruby-identifier">path</span>=<span class="ruby-value str">'/'</span>, <span class="ruby-identifier">headers</span>={})
970
- 289: <span class="ruby-identifier">do_request</span>(<span class="ruby-value str">'HEAD'</span>, <span class="ruby-identifier">path</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">headers</span>)
971
- 290: <span class="ruby-keyword kw">end</span>
1416
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 278</span>
1417
+ 278: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">resource_exists?</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>=<span class="ruby-keyword kw">nil</span>)
1418
+ 279: <span class="ruby-identifier">path</span> = <span class="ruby-node">&quot;/#{bucket_name}&quot;</span>
1419
+ 280: <span class="ruby-identifier">path</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;/#{resource_key}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">resource_key</span>.<span class="ruby-identifier">nil?</span>
1420
+ 281: <span class="ruby-identifier">do_head</span>(<span class="ruby-identifier">path</span>).<span class="ruby-identifier">ok?</span>
1421
+ 282: <span class="ruby-keyword kw">end</span>
972
1422
  </pre>
973
1423
  </div>
974
1424
  </div>
975
1425
  </div>
976
1426
 
977
- <div id="method-M000102" class="method-detail">
978
- <a name="M000102"></a>
1427
+ <div id="method-M000129" class="method-detail">
1428
+ <a name="M000129"></a>
979
1429
 
980
1430
  <div class="method-heading">
981
- <a href="#M000102" class="method-signature">
982
- <span class="method-name">do_post</span><span class="method-args">(path='/', data=nil, headers={})</span>
1431
+ <a href="#M000129" class="method-signature">
1432
+ <span class="method-name">set_acl</span><span class="method-args">(acl_doc, bucket_name, resource_key='')</span>
983
1433
  </a>
984
1434
  </div>
985
1435
 
986
1436
  <div class="method-description">
1437
+ <p>
1438
+ Put the ACL document for a resource.
1439
+ </p>
1440
+ <p>
1441
+ <tt>acl_doc</tt> is an <a href="S3ACL/ACLDoc.html">S33r::S3ACL::ACLDoc</a>
1442
+ instance.
1443
+ </p>
1444
+ <p>
1445
+ Returns true if response had a 200 code, false otherwise. If you get a 400
1446
+ Bad Request back, it means a CanonicalUser could not be identified from the
1447
+ email address.
1448
+ </p>
987
1449
  <p><a class="source-toggle" href="#"
988
- onclick="toggleCode('M000102-source');return false;">[Source]</a></p>
989
- <div class="method-source-code" id="M000102-source">
1450
+ onclick="toggleCode('M000129-source');return false;">[Source]</a></p>
1451
+ <div class="method-source-code" id="M000129-source">
990
1452
  <pre>
991
- <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 292</span>
992
- 292: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">do_post</span>(<span class="ruby-identifier">path</span>=<span class="ruby-value str">'/'</span>, <span class="ruby-identifier">data</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">headers</span>={})
993
- 293: <span class="ruby-identifier">do_request</span>(<span class="ruby-value str">'POST'</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">data</span>, <span class="ruby-identifier">headers</span>)
994
- 294: <span class="ruby-keyword kw">end</span>
1453
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 312</span>
1454
+ 312: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_acl</span>(<span class="ruby-identifier">acl_doc</span>, <span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>=<span class="ruby-value str">''</span>)
1455
+ 313: <span class="ruby-identifier">path</span> = <span class="ruby-identifier">s3_acl_path</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>)
1456
+ 314: <span class="ruby-identifier">response</span> = <span class="ruby-identifier">do_put</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">acl_doc</span>.<span class="ruby-identifier">to_xml</span>)
1457
+ 315: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">ok?</span>
1458
+ 316: <span class="ruby-keyword kw">end</span>
995
1459
  </pre>
996
1460
  </div>
997
1461
  </div>
998
1462
  </div>
999
1463
 
1000
- <div id="method-M000103" class="method-detail">
1001
- <a name="M000103"></a>
1464
+ <div id="method-M000130" class="method-detail">
1465
+ <a name="M000130"></a>
1002
1466
 
1003
1467
  <div class="method-heading">
1004
- <a href="#M000103" class="method-signature">
1005
- <span class="method-name">do_put</span><span class="method-args">(path='/', data=nil, headers={})</span>
1468
+ <a href="#M000130" class="method-signature">
1469
+ <span class="method-name">set_logging</span><span class="method-args">(logging_resource, bucket_name, resource_key='')</span>
1006
1470
  </a>
1007
1471
  </div>
1008
1472
 
1009
1473
  <div class="method-description">
1474
+ <p>
1475
+ Set up logging for a bucket and resource key.
1476
+ </p>
1477
+ <p>
1478
+ <tt>logging_resource</tt> = a <a
1479
+ href="LoggingResource.html">LoggingResource</a> instance.
1480
+ <tt>bucket_name</tt> = a bucket to log. <tt>resource_key</tt> = a resource
1481
+ to log (if empty, logging gets added to the bucket).
1482
+ </p>
1010
1483
  <p><a class="source-toggle" href="#"
1011
- onclick="toggleCode('M000103-source');return false;">[Source]</a></p>
1012
- <div class="method-source-code" id="M000103-source">
1484
+ onclick="toggleCode('M000130-source');return false;">[Source]</a></p>
1485
+ <div class="method-source-code" id="M000130-source">
1013
1486
  <pre>
1014
- <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 296</span>
1015
- 296: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">do_put</span>(<span class="ruby-identifier">path</span>=<span class="ruby-value str">'/'</span>, <span class="ruby-identifier">data</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">headers</span>={})
1016
- 297: <span class="ruby-identifier">do_request</span>(<span class="ruby-value str">'PUT'</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">data</span>, <span class="ruby-identifier">headers</span>)
1017
- 298: <span class="ruby-keyword kw">end</span>
1487
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 324</span>
1488
+ 324: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_logging</span>(<span class="ruby-identifier">logging_resource</span>, <span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>=<span class="ruby-value str">''</span>)
1489
+ 325: <span class="ruby-identifier">path</span> = <span class="ruby-identifier">s3_logging_path</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">resource_key</span>)
1490
+ 326: <span class="ruby-identifier">response</span> = <span class="ruby-identifier">do_put</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">logging_resource</span>.<span class="ruby-identifier">to_xml</span>)
1491
+ 327: <span class="ruby-keyword kw">end</span>
1018
1492
  </pre>
1019
1493
  </div>
1020
1494
  </div>