s33r 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. data/examples/cli/simple.rb +17 -0
  2. data/examples/fores33r/app/controllers/browser_controller.rb +32 -8
  3. data/examples/fores33r/app/views/browser/_create_bucket.rhtml +6 -0
  4. data/examples/fores33r/app/views/browser/_upload.rhtml +5 -0
  5. data/examples/fores33r/app/views/browser/index.rhtml +1 -8
  6. data/examples/fores33r/app/views/browser/plain_bucket.rhtml +3 -0
  7. data/examples/fores33r/app/views/browser/s3_index.rhtml +9 -0
  8. data/examples/fores33r/app/views/browser/show_bucket.rhtml +6 -8
  9. data/examples/fores33r/app/views/layouts/application.rhtml +2 -0
  10. data/examples/fores33r/app/views/layouts/s3_layout.rhtml +14 -0
  11. data/examples/fores33r/config/environment.rb +1 -1
  12. data/examples/fores33r/config/routes.rb +2 -0
  13. data/examples/fores33r/public/stylesheets/core.css +2 -2
  14. data/html/classes/Net/HTTPResponse.html +3 -0
  15. data/html/classes/S33r.html +127 -116
  16. data/html/classes/S33r/BucketListing.html +119 -94
  17. data/html/classes/S33r/Client.html +602 -536
  18. data/html/classes/S33r/LoggingResource.html +3 -3
  19. data/html/classes/S33r/NamedBucket.html +235 -191
  20. data/html/classes/S33r/OrderlyXmlMarkup.html +7 -7
  21. data/html/classes/S33r/S33rException.html +1 -0
  22. data/html/classes/S33r/S33rException/TryingToPutEmptyResource.html +117 -0
  23. data/html/classes/S33r/S3ACL/ACLDoc.html +94 -94
  24. data/html/classes/S33r/S3ACL/AmazonCustomer.html +5 -5
  25. data/html/classes/S33r/S3ACL/CanonicalUser.html +12 -12
  26. data/html/classes/S33r/S3ACL/Grant.html +64 -64
  27. data/html/classes/S33r/S3ACL/Grantee.html +36 -36
  28. data/html/classes/S33r/S3ACL/Group.html +8 -8
  29. data/html/classes/S33r/S3Object.html +387 -79
  30. data/html/classes/XML.html +15 -15
  31. data/html/created.rid +1 -1
  32. data/html/files/CHANGELOG.html +7 -1
  33. data/html/files/MIT-LICENSE.html +1 -1
  34. data/html/files/README_txt.html +3 -7
  35. data/html/files/lib/s33r/bucket_listing_rb.html +1 -9
  36. data/html/files/lib/s33r/builder_rb.html +1 -1
  37. data/html/files/lib/s33r/client_rb.html +1 -1
  38. data/html/files/lib/s33r/core_rb.html +1 -2
  39. data/html/files/lib/s33r/libxml_extensions_rb.html +1 -7
  40. data/html/files/lib/s33r/libxml_loader_rb.html +109 -0
  41. data/html/files/lib/s33r/logging_rb.html +1 -2
  42. data/html/files/lib/s33r/mimetypes_rb.html +1 -1
  43. data/html/files/lib/s33r/named_bucket_rb.html +1 -1
  44. data/html/files/lib/s33r/s33r_exception_rb.html +1 -1
  45. data/html/files/lib/s33r/s33r_http_rb.html +1 -1
  46. data/html/files/lib/s33r/s3_acl_rb.html +1 -2
  47. data/html/files/lib/s33r/s3_obj_rb.html +108 -0
  48. data/html/files/lib/s33r/sync_rb.html +1 -1
  49. data/html/files/lib/s33r_rb.html +1 -1
  50. data/html/fr_class_index.html +1 -0
  51. data/html/fr_file_index.html +2 -0
  52. data/html/fr_method_index.html +80 -71
  53. data/lib/s33r/bucket_listing.rb +30 -55
  54. data/lib/s33r/client.rb +70 -28
  55. data/lib/s33r/core.rb +9 -4
  56. data/lib/s33r/libxml_extensions.rb +2 -0
  57. data/lib/s33r/libxml_loader.rb +6 -0
  58. data/lib/s33r/logging.rb +3 -3
  59. data/lib/s33r/named_bucket.rb +33 -15
  60. data/lib/s33r/s33r_exception.rb +4 -0
  61. data/lib/s33r/s33r_http.rb +1 -1
  62. data/lib/s33r/s3_acl.rb +3 -2
  63. data/lib/s33r/s3_obj.rb +186 -0
  64. data/test/cases/spec_bucket_listing.rb +9 -33
  65. data/test/cases/spec_s3_object.rb +35 -0
  66. data/test/files/suspect_bucket_listing.xml +19 -0
  67. metadata +94 -89
  68. data/examples/fores33r/log/development.log +0 -5960
  69. data/examples/fores33r/log/production.log +0 -0
  70. data/examples/fores33r/log/server.log +0 -0
  71. data/examples/fores33r/log/test.log +0 -0
  72. data/examples/fores33r/tmp/sessions/ruby_sess.2ea325f604aa5fb9 +0 -0
  73. data/examples/fores33r/tmp/sessions/ruby_sess.39d37e054d21d545 +0 -0
  74. data/examples/fores33r/tmp/sessions/ruby_sess.acf71fc73aa74983 +0 -0
  75. data/examples/fores33r/tmp/sessions/ruby_sess.c1697b7d6670f3cd +0 -0
@@ -92,12 +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="#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;
95
+ <a href="#M000155">[]</a>&nbsp;&nbsp;
96
+ <a href="#M000154">last_key</a>&nbsp;&nbsp;
97
+ <a href="#M000151">new</a>&nbsp;&nbsp;
98
+ <a href="#M000153">parse_listing</a>&nbsp;&nbsp;
99
+ <a href="#M000156">pretty</a>&nbsp;&nbsp;
100
+ <a href="#M000152">set_listing_xml</a>&nbsp;&nbsp;
101
101
  </div>
102
102
  </div>
103
103
 
@@ -180,6 +180,15 @@ listing.
180
180
  <td class="context-item-value">&nbsp;[R]&nbsp;</td>
181
181
  <td class="context-item-desc"></td>
182
182
  </tr>
183
+ <tr class="top-aligned-row context-row">
184
+ <td class="context-item-name">raw</td>
185
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
186
+ <td class="context-item-desc">
187
+ Set to true to show raw parsing errors, instead of the catch all error
188
+ message (useful for debugging).
189
+
190
+ </td>
191
+ </tr>
183
192
  </table>
184
193
  </div>
185
194
  </div>
@@ -190,12 +199,12 @@ listing.
190
199
  <div id="methods">
191
200
  <h3 class="section-bar">Public Class methods</h3>
192
201
 
193
- <div id="method-M000107" class="method-detail">
194
- <a name="M000107"></a>
202
+ <div id="method-M000151" class="method-detail">
203
+ <a name="M000151"></a>
195
204
 
196
205
  <div class="method-heading">
197
- <a href="#M000107" class="method-signature">
198
- <span class="method-name">new</span><span class="method-args">(bucket_listing_xml, named_bucket=nil)</span>
206
+ <a href="#M000151" class="method-signature">
207
+ <span class="method-name">new</span><span class="method-args">(bucket_listing_xml, named_bucket=nil, raw=false)</span>
199
208
  </a>
200
209
  </div>
201
210
 
@@ -214,19 +223,23 @@ href="NamedBucket.html">NamedBucket</a> instance, so that any objects
214
223
  inside this listing can be associated with that instance. This enables
215
224
  objects to be easily deleted without having to create a new <a
216
225
  href="Client.html">Client</a> instance.
226
+ </p>
227
+ <p>
228
+ If <tt>raw</tt> is set to true, you get ugly parser errors.
217
229
  </p>
218
230
  <p><a class="source-toggle" href="#"
219
- onclick="toggleCode('M000107-source');return false;">[Source]</a></p>
220
- <div class="method-source-code" id="M000107-source">
231
+ onclick="toggleCode('M000151-source');return false;">[Source]</a></p>
232
+ <div class="method-source-code" id="M000151-source">
221
233
  <pre>
222
- <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 27</span>
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>)
224
- 28: <span class="ruby-ivar">@contents</span> = {}
225
- 29: <span class="ruby-ivar">@common_prefixes</span> = {}
226
- 30: <span class="ruby-comment cmt"># the NamedBucket instance associated with this listing (if any)</span>
227
- 31: <span class="ruby-ivar">@named_bucket</span> = <span class="ruby-identifier">named_bucket</span>
228
- 32: <span class="ruby-identifier">set_listing_xml</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
229
- 33: <span class="ruby-keyword kw">end</span>
234
+ <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 32</span>
235
+ 32: <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>, <span class="ruby-identifier">raw</span>=<span class="ruby-keyword kw">false</span>)
236
+ 33: <span class="ruby-ivar">@contents</span> = {}
237
+ 34: <span class="ruby-ivar">@common_prefixes</span> = {}
238
+ 35: <span class="ruby-comment cmt"># the NamedBucket instance associated with this listing (if any)</span>
239
+ 36: <span class="ruby-ivar">@named_bucket</span> = <span class="ruby-identifier">named_bucket</span>
240
+ 37: <span class="ruby-ivar">@raw</span> = <span class="ruby-identifier">raw</span>
241
+ 38: <span class="ruby-identifier">set_listing_xml</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
242
+ 39: <span class="ruby-keyword kw">end</span>
230
243
  </pre>
231
244
  </div>
232
245
  </div>
@@ -234,11 +247,11 @@ href="Client.html">Client</a> instance.
234
247
 
235
248
  <h3 class="section-bar">Public Instance methods</h3>
236
249
 
237
- <div id="method-M000111" class="method-detail">
238
- <a name="M000111"></a>
250
+ <div id="method-M000155" class="method-detail">
251
+ <a name="M000155"></a>
239
252
 
240
253
  <div class="method-heading">
241
- <a href="#M000111" class="method-signature">
254
+ <a href="#M000155" class="method-signature">
242
255
  <span class="method-name">[]</span><span class="method-args">(key)</span>
243
256
  </a>
244
257
  </div>
@@ -248,23 +261,23 @@ href="Client.html">Client</a> instance.
248
261
  Return an object in this bucket by key.
249
262
  </p>
250
263
  <p><a class="source-toggle" href="#"
251
- onclick="toggleCode('M000111-source');return false;">[Source]</a></p>
252
- <div class="method-source-code" id="M000111-source">
264
+ onclick="toggleCode('M000155-source');return false;">[Source]</a></p>
265
+ <div class="method-source-code" id="M000155-source">
253
266
  <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>
267
+ <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 98</span>
268
+ 98: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">key</span>)
269
+ 99: <span class="ruby-ivar">@contents</span>[<span class="ruby-identifier">key</span>]
270
+ 100: <span class="ruby-keyword kw">end</span>
258
271
  </pre>
259
272
  </div>
260
273
  </div>
261
274
  </div>
262
275
 
263
- <div id="method-M000110" class="method-detail">
264
- <a name="M000110"></a>
276
+ <div id="method-M000154" class="method-detail">
277
+ <a name="M000154"></a>
265
278
 
266
279
  <div class="method-heading">
267
- <a href="#M000110" class="method-signature">
280
+ <a href="#M000154" class="method-signature">
268
281
  <span class="method-name">last_key</span><span class="method-args">()</span>
269
282
  </a>
270
283
  </div>
@@ -274,23 +287,23 @@ Return an object in this bucket by key.
274
287
  Get the last key in the contents hash.
275
288
  </p>
276
289
  <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">
290
+ onclick="toggleCode('M000154-source');return false;">[Source]</a></p>
291
+ <div class="method-source-code" id="M000154-source">
279
292
  <pre>
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>
293
+ <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 93</span>
294
+ 93: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">last_key</span>
295
+ 94: <span class="ruby-ivar">@contents</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">last</span>
296
+ 95: <span class="ruby-keyword kw">end</span>
284
297
  </pre>
285
298
  </div>
286
299
  </div>
287
300
  </div>
288
301
 
289
- <div id="method-M000109" class="method-detail">
290
- <a name="M000109"></a>
302
+ <div id="method-M000153" class="method-detail">
303
+ <a name="M000153"></a>
291
304
 
292
305
  <div class="method-heading">
293
- <a href="#M000109" class="method-signature">
306
+ <a href="#M000153" class="method-signature">
294
307
  <span class="method-name">parse_listing</span><span class="method-args">(bucket_listing_xml)</span>
295
308
  </a>
296
309
  </div>
@@ -298,46 +311,49 @@ Get the last key in the contents hash.
298
311
  <div class="method-description">
299
312
  <p>
300
313
  Parse raw <a href="../XML.html">XML</a> ListBucketResponse from S3 into
301
- object instances.
314
+ object instances. The S3Objects are skeletons, and are not automatically
315
+ populated from S3 (their @value attributes are nil). To load the data into
316
+ an object, grab it from the listing and call its load method to pull the
317
+ data down from S3.
302
318
  </p>
303
319
  <p><a class="source-toggle" href="#"
304
- onclick="toggleCode('M000109-source');return false;">[Source]</a></p>
305
- <div class="method-source-code" id="M000109-source">
320
+ onclick="toggleCode('M000153-source');return false;">[Source]</a></p>
321
+ <div class="method-source-code" id="M000153-source">
306
322
  <pre>
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>
323
+ <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 68</span>
324
+ 68: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_listing</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
325
+ 69: <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>)
326
+ 70:
327
+ 71: <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>
328
+ 72: <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>
329
+ 73: <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>
330
+ 74: <span class="ruby-keyword kw">end</span>
331
+ 75:
332
+ 76: <span class="ruby-comment cmt"># metadata</span>
333
+ 77: <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>)
334
+ 78: <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>)
335
+ 79: <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>)
336
+ 80: <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>)
337
+ 81: <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>)
338
+ 82: <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>)
339
+ 83:
340
+ 84: <span class="ruby-comment cmt"># contents</span>
341
+ 85: <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>
342
+ 86: <span class="ruby-identifier">obj</span> = <span class="ruby-constant">S3Object</span>.<span class="ruby-identifier">from_xml_node</span>(<span class="ruby-identifier">node</span>)
343
+ 87: <span class="ruby-comment cmt"># Add to the content listing for the bucket</span>
344
+ 88: <span class="ruby-ivar">@contents</span>[<span class="ruby-identifier">obj</span>.<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">obj</span>
345
+ 89: <span class="ruby-keyword kw">end</span>
346
+ 90: <span class="ruby-keyword kw">end</span>
331
347
  </pre>
332
348
  </div>
333
349
  </div>
334
350
  </div>
335
351
 
336
- <div id="method-M000112" class="method-detail">
337
- <a name="M000112"></a>
352
+ <div id="method-M000156" class="method-detail">
353
+ <a name="M000156"></a>
338
354
 
339
355
  <div class="method-heading">
340
- <a href="#M000112" class="method-signature">
356
+ <a href="#M000156" class="method-signature">
341
357
  <span class="method-name">pretty</span><span class="method-args">()</span>
342
358
  </a>
343
359
  </div>
@@ -347,23 +363,23 @@ object instances.
347
363
  Pretty listing of keys in alphabetical order.
348
364
  </p>
349
365
  <p><a class="source-toggle" href="#"
350
- onclick="toggleCode('M000112-source');return false;">[Source]</a></p>
351
- <div class="method-source-code" id="M000112-source">
366
+ onclick="toggleCode('M000156-source');return false;">[Source]</a></p>
367
+ <div class="method-source-code" id="M000156-source">
352
368
  <pre>
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>
369
+ <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 103</span>
370
+ 103: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pretty</span>
371
+ 104: <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> }
372
+ 105: <span class="ruby-keyword kw">end</span>
357
373
  </pre>
358
374
  </div>
359
375
  </div>
360
376
  </div>
361
377
 
362
- <div id="method-M000108" class="method-detail">
363
- <a name="M000108"></a>
378
+ <div id="method-M000152" class="method-detail">
379
+ <a name="M000152"></a>
364
380
 
365
381
  <div class="method-heading">
366
- <a href="#M000108" class="method-signature">
382
+ <a href="#M000152" class="method-signature">
367
383
  <span class="method-name">set_listing_xml</span><span class="method-args">(bucket_listing_xml)</span>
368
384
  </a>
369
385
  </div>
@@ -374,21 +390,30 @@ Convert a ListBucketResult <a href="../XML.html">XML</a> document into an
374
390
  object representation.
375
391
  </p>
376
392
  <p><a class="source-toggle" href="#"
377
- onclick="toggleCode('M000108-source');return false;">[Source]</a></p>
378
- <div class="method-source-code" id="M000108-source">
393
+ onclick="toggleCode('M000152-source');return false;">[Source]</a></p>
394
+ <div class="method-source-code" id="M000152-source">
379
395
  <pre>
380
- <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 36</span>
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>)
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>
396
+ <span class="ruby-comment cmt"># File lib/s33r/bucket_listing.rb, line 42</span>
397
+ 42: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_listing_xml</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
398
+ 43: <span class="ruby-comment cmt"># proc to remove the namespace and parse the listing</span>
399
+ 44: <span class="ruby-identifier">work</span> = <span class="ruby-identifier">lambda</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">bucket_listing_xml</span><span class="ruby-operator">|</span>
400
+ 45: <span class="ruby-comment cmt"># remove the namespace declaration: libxml doesn't like it</span>
401
+ 46: <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>)
402
+ 47: <span class="ruby-identifier">parse_listing</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
403
+ 48: <span class="ruby-keyword kw">end</span>
404
+ 49:
405
+ 50: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@raw</span>
406
+ 51: <span class="ruby-identifier">work</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
407
+ 52: <span class="ruby-keyword kw">else</span>
408
+ 53: <span class="ruby-keyword kw">begin</span>
409
+ 54: <span class="ruby-identifier">work</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">bucket_listing_xml</span>)
410
+ 55: <span class="ruby-keyword kw">rescue</span>
411
+ 56: <span class="ruby-identifier">message</span> = <span class="ruby-value str">&quot;Cannot create bucket listing from supplied XML&quot;</span>
412
+ 57: <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>
413
+ 58: <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>
414
+ 59: <span class="ruby-keyword kw">end</span>
415
+ 60: <span class="ruby-keyword kw">end</span>
416
+ 61: <span class="ruby-keyword kw">end</span>
392
417
  </pre>
393
418
  </div>
394
419
  </div>
@@ -94,41 +94,42 @@ 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="#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;
97
+ <a href="#M000145">add_client_headers</a>&nbsp;&nbsp;
98
+ <a href="#M000126">bucket_exists?</a>&nbsp;&nbsp;
99
+ <a href="#M000124">create_bucket</a>&nbsp;&nbsp;
100
+ <a href="#M000125">delete_bucket</a>&nbsp;&nbsp;
101
+ <a href="#M000144">delete_resource</a>&nbsp;&nbsp;
102
+ <a href="#M000137">disable_log_target</a>&nbsp;&nbsp;
103
+ <a href="#M000139">disable_logging</a>&nbsp;&nbsp;
104
+ <a href="#M000150">do_delete</a>&nbsp;&nbsp;
105
+ <a href="#M000146">do_get</a>&nbsp;&nbsp;
106
+ <a href="#M000147">do_head</a>&nbsp;&nbsp;
107
+ <a href="#M000148">do_post</a>&nbsp;&nbsp;
108
+ <a href="#M000149">do_put</a>&nbsp;&nbsp;
109
+ <a href="#M000119">do_request</a>&nbsp;&nbsp;
110
+ <a href="#M000136">enable_log_target</a>&nbsp;&nbsp;
111
+ <a href="#M000138">enable_logging</a>&nbsp;&nbsp;
112
+ <a href="#M000131">get_acl</a>&nbsp;&nbsp;
113
+ <a href="#M000116">get_client</a>&nbsp;&nbsp;
114
+ <a href="#M000140">get_logging</a>&nbsp;&nbsp;
115
+ <a href="#M000127">get_named_bucket</a>&nbsp;&nbsp;
116
+ <a href="#M000130">get_object</a>&nbsp;&nbsp;
117
+ <a href="#M000120">get_requester</a>&nbsp;&nbsp;
118
+ <a href="#M000128">get_resource</a>&nbsp;&nbsp;
119
+ <a href="#M000117">init</a>&nbsp;&nbsp;
120
+ <a href="#M000122">list</a>&nbsp;&nbsp;
121
+ <a href="#M000123">list_bucket</a>&nbsp;&nbsp;
122
+ <a href="#M000121">list_buckets</a>&nbsp;&nbsp;
123
+ <a href="#M000118">load_config</a>&nbsp;&nbsp;
124
+ <a href="#M000135">make_private</a>&nbsp;&nbsp;
125
+ <a href="#M000134">make_public</a>&nbsp;&nbsp;
126
+ <a href="#M000115">new</a>&nbsp;&nbsp;
127
+ <a href="#M000143">put_file</a>&nbsp;&nbsp;
128
+ <a href="#M000141">put_resource</a>&nbsp;&nbsp;
129
+ <a href="#M000142">put_text</a>&nbsp;&nbsp;
130
+ <a href="#M000129">resource_exists?</a>&nbsp;&nbsp;
131
+ <a href="#M000132">set_acl</a>&nbsp;&nbsp;
132
+ <a href="#M000133">set_logging</a>&nbsp;&nbsp;
132
133
  </div>
133
134
  </div>
134
135
 
@@ -202,6 +203,16 @@ Whether client dumps headers from requests.
202
203
  <td class="context-item-desc">
203
204
  Default log bucket location.
204
205
 
206
+ </td>
207
+ </tr>
208
+ <tr class="top-aligned-row context-row">
209
+ <td class="context-item-name">options</td>
210
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
211
+ <td class="context-item-desc">
212
+ The options used to create the client (useful when spawning <a
213
+ href="NamedBucket.html">NamedBucket</a> instances from <a
214
+ href="Client.html">Client</a> instances).
215
+
205
216
  </td>
206
217
  </tr>
207
218
  <tr class="top-aligned-row context-row">
@@ -222,11 +233,11 @@ Whether client should use SSL.
222
233
  <div id="methods">
223
234
  <h3 class="section-bar">Public Class methods</h3>
224
235
 
225
- <div id="method-M000115" class="method-detail">
226
- <a name="M000115"></a>
236
+ <div id="method-M000117" class="method-detail">
237
+ <a name="M000117"></a>
227
238
 
228
239
  <div class="method-heading">
229
- <a href="#M000115" class="method-signature">
240
+ <a href="#M000117" class="method-signature">
230
241
  <span class="method-name">init</span><span class="method-args">(config_file)</span>
231
242
  </a>
232
243
  </div>
@@ -234,28 +245,28 @@ Whether client should use SSL.
234
245
  <div class="method-description">
235
246
  <p>
236
247
  Initialise client from YAML configuration file (see <a
237
- href="Client.html#M000116">load_config</a> method for details of acceptable
248
+ href="Client.html#M000118">load_config</a> method for details of acceptable
238
249
  format).
239
250
  </p>
240
251
  <p><a class="source-toggle" href="#"
241
- onclick="toggleCode('M000115-source');return false;">[Source]</a></p>
242
- <div class="method-source-code" id="M000115-source">
252
+ onclick="toggleCode('M000117-source');return false;">[Source]</a></p>
253
+ <div class="method-source-code" id="M000117-source">
243
254
  <pre>
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>
255
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 95</span>
256
+ 95: <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>)
257
+ 96: <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>)
258
+ 97: <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>)
259
+ 98: <span class="ruby-keyword kw">end</span>
249
260
  </pre>
250
261
  </div>
251
262
  </div>
252
263
  </div>
253
264
 
254
- <div id="method-M000116" class="method-detail">
255
- <a name="M000116"></a>
265
+ <div id="method-M000118" class="method-detail">
266
+ <a name="M000118"></a>
256
267
 
257
268
  <div class="method-heading">
258
- <a href="#M000116" class="method-signature">
269
+ <a href="#M000118" class="method-signature">
259
270
  <span class="method-name">load_config</span><span class="method-args">(config_file)</span>
260
271
  </a>
261
272
  </div>
@@ -279,41 +290,41 @@ Note that the loader also runs the config. file through ERB, so you can add
279
290
  dynamic blocks of ERB (Ruby) code into your files.
280
291
  </p>
281
292
  <p>
282
- The <tt>options</tt> section contains settings specific to <a
283
- href="Client.html">Client</a> and NamedClient instances; <tt>custom</tt>
284
- contains extra settings specific to your application. <tt>options</tt> and
285
- <tt>custom</tt> sections can be omitted, but settings for AWS keys are
286
- required.
293
+ The <tt>options</tt> section contains other settings, either specific to
294
+ the <a href="Client.html">Client</a> or <a
295
+ href="NamedBucket.html">NamedBucket</a> classes, or general application
296
+ settings. The <tt>options</tt> section can be omitted, but settings for AWS
297
+ keys are required.
287
298
  </p>
288
299
  <p>
289
300
  Returns an array <tt>[aws_access_key, aws_secret_access_key, options]</tt>,
290
301
  where <tt>options</tt> is a hash.
291
302
  </p>
292
303
  <p><a class="source-toggle" href="#"
293
- onclick="toggleCode('M000116-source');return false;">[Source]</a></p>
294
- <div class="method-source-code" id="M000116-source">
304
+ onclick="toggleCode('M000118-source');return false;">[Source]</a></p>
305
+ <div class="method-source-code" id="M000118-source">
295
306
  <pre>
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>
307
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 113</span>
308
+ 113: <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>)
309
+ 114: <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>)
310
+ 115: <span class="ruby-identifier">aws_access_key</span> = <span class="ruby-identifier">config</span>[<span class="ruby-value str">'aws_access_key'</span>]
311
+ 116: <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>]
312
+ 117:
313
+ 118: <span class="ruby-identifier">options</span> = {}
314
+ 119: <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>]
315
+ 120:
316
+ 121: [<span class="ruby-identifier">aws_access_key</span>, <span class="ruby-identifier">aws_secret_access_key</span>, <span class="ruby-identifier">options</span>]
317
+ 122: <span class="ruby-keyword kw">end</span>
307
318
  </pre>
308
319
  </div>
309
320
  </div>
310
321
  </div>
311
322
 
312
- <div id="method-M000113" class="method-detail">
313
- <a name="M000113"></a>
323
+ <div id="method-M000115" class="method-detail">
324
+ <a name="M000115"></a>
314
325
 
315
326
  <div class="method-heading">
316
- <a href="#M000113" class="method-signature">
327
+ <a href="#M000115" class="method-signature">
317
328
  <span class="method-name">new</span><span class="method-args">(aws_access_key, aws_secret_access_key, options={})</span>
318
329
  </a>
319
330
  </div>
@@ -336,28 +347,32 @@ and headers to STDOUT
336
347
  </li>
337
348
  </ul>
338
349
  <p><a class="source-toggle" href="#"
339
- onclick="toggleCode('M000113-source');return false;">[Source]</a></p>
340
- <div class="method-source-code" id="M000113-source">
350
+ onclick="toggleCode('M000115-source');return false;">[Source]</a></p>
351
+ <div class="method-source-code" id="M000115-source">
341
352
  <pre>
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>])
348
- 51:
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>
353
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 51</span>
354
+ 51: <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>={})
355
+ 52: <span class="ruby-ivar">@use_ssl</span> = <span class="ruby-keyword kw">true</span>
356
+ 53: <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>])
357
+ 54: <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:use_ssl</span>] = <span class="ruby-ivar">@use_ssl</span>
358
+ 55:
359
+ 56: <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>])
360
+ 57:
361
+ 58: <span class="ruby-comment cmt"># set default chunk size for streaming request body</span>
362
+ 59: <span class="ruby-ivar">@chunk_size</span> = <span class="ruby-constant">DEFAULT_CHUNK_SIZE</span>
363
+ 60:
364
+ 61: <span class="ruby-ivar">@log_bucket</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:log_bucket</span>]
365
+ 62:
366
+ 63: <span class="ruby-comment cmt"># Amazon S3 developer keys</span>
367
+ 64: <span class="ruby-ivar">@aws_access_key</span> = <span class="ruby-identifier">aws_access_key</span>
368
+ 65: <span class="ruby-ivar">@aws_secret_access_key</span> = <span class="ruby-identifier">aws_secret_access_key</span>
369
+ 66:
370
+ 67: <span class="ruby-comment cmt"># headers sent with every request made by this client</span>
371
+ 68: <span class="ruby-ivar">@client_headers</span> = {}
372
+ 69:
373
+ 70: <span class="ruby-comment cmt"># keep a record of the options used to create this instance</span>
374
+ 71: <span class="ruby-ivar">@options</span> = <span class="ruby-identifier">options</span>
375
+ 72: <span class="ruby-keyword kw">end</span>
361
376
  </pre>
362
377
  </div>
363
378
  </div>
@@ -365,11 +380,11 @@ and headers to STDOUT
365
380
 
366
381
  <h3 class="section-bar">Public Instance methods</h3>
367
382
 
368
- <div id="method-M000142" class="method-detail">
369
- <a name="M000142"></a>
383
+ <div id="method-M000145" class="method-detail">
384
+ <a name="M000145"></a>
370
385
 
371
386
  <div class="method-heading">
372
- <a href="#M000142" class="method-signature">
387
+ <a href="#M000145" class="method-signature">
373
388
  <span class="method-name">add_client_headers</span><span class="method-args">(headers)</span>
374
389
  </a>
375
390
  </div>
@@ -388,23 +403,23 @@ Returns <tt>headers</tt> with the content of <tt>client_headers</tt> merged
388
403
  in.
389
404
  </p>
390
405
  <p><a class="source-toggle" href="#"
391
- onclick="toggleCode('M000142-source');return false;">[Source]</a></p>
392
- <div class="method-source-code" id="M000142-source">
406
+ onclick="toggleCode('M000145-source');return false;">[Source]</a></p>
407
+ <div class="method-source-code" id="M000145-source">
393
408
  <pre>
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>
409
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 520</span>
410
+ 520: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_client_headers</span>(<span class="ruby-identifier">headers</span>)
411
+ 521: <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> }
412
+ 522: <span class="ruby-keyword kw">end</span>
398
413
  </pre>
399
414
  </div>
400
415
  </div>
401
416
  </div>
402
417
 
403
- <div id="method-M000124" class="method-detail">
404
- <a name="M000124"></a>
418
+ <div id="method-M000126" class="method-detail">
419
+ <a name="M000126"></a>
405
420
 
406
421
  <div class="method-heading">
407
- <a href="#M000124" class="method-signature">
422
+ <a href="#M000126" class="method-signature">
408
423
  <span class="method-name">bucket_exists?</span><span class="method-args">(bucket_name)</span>
409
424
  </a>
410
425
  </div>
@@ -412,28 +427,25 @@ in.
412
427
  <div class="method-description">
413
428
  <p>
414
429
  Check whether a bucket exists or not.
415
- </p>
416
- <p>
417
- Returns true if bucket exists.
418
430
  </p>
419
431
  <p><a class="source-toggle" href="#"
420
- onclick="toggleCode('M000124-source');return false;">[Source]</a></p>
421
- <div class="method-source-code" id="M000124-source">
432
+ onclick="toggleCode('M000126-source');return false;">[Source]</a></p>
433
+ <div class="method-source-code" id="M000126-source">
422
434
  <pre>
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>
435
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 280</span>
436
+ 280: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">bucket_exists?</span>(<span class="ruby-identifier">bucket_name</span>)
437
+ 281: <span class="ruby-identifier">resource_exists?</span>(<span class="ruby-identifier">bucket_name</span>)
438
+ 282: <span class="ruby-keyword kw">end</span>
427
439
  </pre>
428
440
  </div>
429
441
  </div>
430
442
  </div>
431
443
 
432
- <div id="method-M000122" class="method-detail">
433
- <a name="M000122"></a>
444
+ <div id="method-M000124" class="method-detail">
445
+ <a name="M000124"></a>
434
446
 
435
447
  <div class="method-heading">
436
- <a href="#M000122" class="method-signature">
448
+ <a href="#M000124" class="method-signature">
437
449
  <span class="method-name">create_bucket</span><span class="method-args">(bucket_name, headers={})</span>
438
450
  </a>
439
451
  </div>
@@ -446,24 +458,24 @@ Create a bucket.
446
458
  Returns true if response returned a 200 code; false otherwise.
447
459
  </p>
448
460
  <p><a class="source-toggle" href="#"
449
- onclick="toggleCode('M000122-source');return false;">[Source]</a></p>
450
- <div class="method-source-code" id="M000122-source">
461
+ onclick="toggleCode('M000124-source');return false;">[Source]</a></p>
462
+ <div class="method-source-code" id="M000124-source">
451
463
  <pre>
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>
464
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 257</span>
465
+ 257: <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>={})
466
+ 258: <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>)
467
+ 259: <span class="ruby-identifier">resp</span>.<span class="ruby-identifier">ok?</span>
468
+ 260: <span class="ruby-keyword kw">end</span>
457
469
  </pre>
458
470
  </div>
459
471
  </div>
460
472
  </div>
461
473
 
462
- <div id="method-M000123" class="method-detail">
463
- <a name="M000123"></a>
474
+ <div id="method-M000125" class="method-detail">
475
+ <a name="M000125"></a>
464
476
 
465
477
  <div class="method-heading">
466
- <a href="#M000123" class="method-signature">
478
+ <a href="#M000125" class="method-signature">
467
479
  <span class="method-name">delete_bucket</span><span class="method-args">(bucket_name, headers={}, options={})</span>
468
480
  </a>
469
481
  </div>
@@ -482,30 +494,30 @@ the bucket itself
482
494
  </li>
483
495
  </ul>
484
496
  <p><a class="source-toggle" href="#"
485
- onclick="toggleCode('M000123-source');return false;">[Source]</a></p>
486
- <div class="method-source-code" id="M000123-source">
497
+ onclick="toggleCode('M000125-source');return false;">[Source]</a></p>
498
+ <div class="method-source-code" id="M000125-source">
487
499
  <pre>
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>
500
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 268</span>
501
+ 268: <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>={})
502
+ 269: <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>]
503
+ 270: <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>)
504
+ 271: <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>
505
+ 272: <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>)
506
+ 273: <span class="ruby-keyword kw">end</span>
507
+ 274: <span class="ruby-keyword kw">end</span>
508
+ 275:
509
+ 276: <span class="ruby-identifier">do_delete</span>(<span class="ruby-node">&quot;/#{bucket_name}&quot;</span>, <span class="ruby-identifier">headers</span>)
510
+ 277: <span class="ruby-keyword kw">end</span>
499
511
  </pre>
500
512
  </div>
501
513
  </div>
502
514
  </div>
503
515
 
504
- <div id="method-M000141" class="method-detail">
505
- <a name="M000141"></a>
516
+ <div id="method-M000144" class="method-detail">
517
+ <a name="M000144"></a>
506
518
 
507
519
  <div class="method-heading">
508
- <a href="#M000141" class="method-signature">
520
+ <a href="#M000144" class="method-signature">
509
521
  <span class="method-name">delete_resource</span><span class="method-args">(bucket_name, resource_key, headers={})</span>
510
522
  </a>
511
523
  </div>
@@ -515,28 +527,28 @@ the bucket itself
515
527
  Delete a resource from S3.
516
528
  </p>
517
529
  <p>
518
- Note that S3 returns the same response code () regardless of whether the
530
+ Note that S3 returns the same response code regardless of whether the
519
531
  resource was successfully deleted, or didn&#8217;t exist in the first
520
532
  place.
521
533
  </p>
522
534
  <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">
535
+ onclick="toggleCode('M000144-source');return false;">[Source]</a></p>
536
+ <div class="method-source-code" id="M000144-source">
525
537
  <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>
538
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 510</span>
539
+ 510: <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>={})
540
+ 511: <span class="ruby-identifier">do_delete</span>(<span class="ruby-node">&quot;/#{bucket_name}/#{resource_key}&quot;</span>, <span class="ruby-identifier">headers</span>)
541
+ 512: <span class="ruby-keyword kw">end</span>
530
542
  </pre>
531
543
  </div>
532
544
  </div>
533
545
  </div>
534
546
 
535
- <div id="method-M000134" class="method-detail">
536
- <a name="M000134"></a>
547
+ <div id="method-M000137" class="method-detail">
548
+ <a name="M000137"></a>
537
549
 
538
550
  <div class="method-heading">
539
- <a href="#M000134" class="method-signature">
551
+ <a href="#M000137" class="method-signature">
540
552
  <span class="method-name">disable_log_target</span><span class="method-args">(bucket_name)</span>
541
553
  </a>
542
554
  </div>
@@ -550,166 +562,166 @@ Returns true if the bucket is no longer log targetable; false if it remains
550
562
  a log target.
551
563
  </p>
552
564
  <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">
565
+ onclick="toggleCode('M000137-source');return false;">[Source]</a></p>
566
+ <div class="method-source-code" id="M000137-source">
555
567
  <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>
568
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 396</span>
569
+ 396: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">disable_log_target</span>(<span class="ruby-identifier">bucket_name</span>)
570
+ 397: <span class="ruby-identifier">acl</span> = <span class="ruby-identifier">get_acl</span>(<span class="ruby-identifier">bucket_name</span>)
571
+ 398: <span class="ruby-identifier">acl</span>.<span class="ruby-identifier">remove_log_target</span>
572
+ 399: <span class="ruby-identifier">set_acl</span>(<span class="ruby-identifier">acl</span>, <span class="ruby-identifier">bucket_name</span>)
573
+ 400: <span class="ruby-operator">!</span><span class="ruby-identifier">acl</span>.<span class="ruby-identifier">log_targetable?</span>
574
+ 401: <span class="ruby-keyword kw">end</span>
563
575
  </pre>
564
576
  </div>
565
577
  </div>
566
578
  </div>
567
579
 
568
- <div id="method-M000136" class="method-detail">
569
- <a name="M000136"></a>
580
+ <div id="method-M000139" class="method-detail">
581
+ <a name="M000139"></a>
570
582
 
571
583
  <div class="method-heading">
572
- <a href="#M000136" class="method-signature">
584
+ <a href="#M000139" class="method-signature">
573
585
  <span class="method-name">disable_logging</span><span class="method-args">()</span>
574
586
  </a>
575
587
  </div>
576
588
 
577
589
  <div class="method-description">
578
590
  <p>
579
- TODO
591
+ Turn off logging of a resource.
580
592
  </p>
581
593
  <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">
594
+ onclick="toggleCode('M000139-source');return false;">[Source]</a></p>
595
+ <div class="method-source-code" id="M000139-source">
584
596
  <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>
597
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 436</span>
598
+ 436: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">disable_logging</span>
599
+ 437: <span class="ruby-keyword kw">end</span>
588
600
  </pre>
589
601
  </div>
590
602
  </div>
591
603
  </div>
592
604
 
593
- <div id="method-M000147" class="method-detail">
594
- <a name="M000147"></a>
605
+ <div id="method-M000150" class="method-detail">
606
+ <a name="M000150"></a>
595
607
 
596
608
  <div class="method-heading">
597
- <a href="#M000147" class="method-signature">
609
+ <a href="#M000150" class="method-signature">
598
610
  <span class="method-name">do_delete</span><span class="method-args">(path, headers={})</span>
599
611
  </a>
600
612
  </div>
601
613
 
602
614
  <div class="method-description">
603
615
  <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">
616
+ onclick="toggleCode('M000150-source');return false;">[Source]</a></p>
617
+ <div class="method-source-code" id="M000150-source">
606
618
  <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>
619
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 540</span>
620
+ 540: <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>={})
621
+ 541: <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>)
622
+ 542: <span class="ruby-keyword kw">end</span>
611
623
  </pre>
612
624
  </div>
613
625
  </div>
614
626
  </div>
615
627
 
616
- <div id="method-M000143" class="method-detail">
617
- <a name="M000143"></a>
628
+ <div id="method-M000146" class="method-detail">
629
+ <a name="M000146"></a>
618
630
 
619
631
  <div class="method-heading">
620
- <a href="#M000143" class="method-signature">
632
+ <a href="#M000146" class="method-signature">
621
633
  <span class="method-name">do_get</span><span class="method-args">(path='/', headers={})</span>
622
634
  </a>
623
635
  </div>
624
636
 
625
637
  <div class="method-description">
626
638
  <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">
639
+ onclick="toggleCode('M000146-source');return false;">[Source]</a></p>
640
+ <div class="method-source-code" id="M000146-source">
629
641
  <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>
642
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 524</span>
643
+ 524: <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>={})
644
+ 525: <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>)
645
+ 526: <span class="ruby-keyword kw">end</span>
634
646
  </pre>
635
647
  </div>
636
648
  </div>
637
649
  </div>
638
650
 
639
- <div id="method-M000144" class="method-detail">
640
- <a name="M000144"></a>
651
+ <div id="method-M000147" class="method-detail">
652
+ <a name="M000147"></a>
641
653
 
642
654
  <div class="method-heading">
643
- <a href="#M000144" class="method-signature">
655
+ <a href="#M000147" class="method-signature">
644
656
  <span class="method-name">do_head</span><span class="method-args">(path='/', headers={})</span>
645
657
  </a>
646
658
  </div>
647
659
 
648
660
  <div class="method-description">
649
661
  <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">
662
+ onclick="toggleCode('M000147-source');return false;">[Source]</a></p>
663
+ <div class="method-source-code" id="M000147-source">
652
664
  <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>
665
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 528</span>
666
+ 528: <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>={})
667
+ 529: <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>)
668
+ 530: <span class="ruby-keyword kw">end</span>
657
669
  </pre>
658
670
  </div>
659
671
  </div>
660
672
  </div>
661
673
 
662
- <div id="method-M000145" class="method-detail">
663
- <a name="M000145"></a>
674
+ <div id="method-M000148" class="method-detail">
675
+ <a name="M000148"></a>
664
676
 
665
677
  <div class="method-heading">
666
- <a href="#M000145" class="method-signature">
678
+ <a href="#M000148" class="method-signature">
667
679
  <span class="method-name">do_post</span><span class="method-args">(path='/', data=nil, headers={})</span>
668
680
  </a>
669
681
  </div>
670
682
 
671
683
  <div class="method-description">
672
684
  <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">
685
+ onclick="toggleCode('M000148-source');return false;">[Source]</a></p>
686
+ <div class="method-source-code" id="M000148-source">
675
687
  <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>
688
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 532</span>
689
+ 532: <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>={})
690
+ 533: <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>)
691
+ 534: <span class="ruby-keyword kw">end</span>
680
692
  </pre>
681
693
  </div>
682
694
  </div>
683
695
  </div>
684
696
 
685
- <div id="method-M000146" class="method-detail">
686
- <a name="M000146"></a>
697
+ <div id="method-M000149" class="method-detail">
698
+ <a name="M000149"></a>
687
699
 
688
700
  <div class="method-heading">
689
- <a href="#M000146" class="method-signature">
701
+ <a href="#M000149" class="method-signature">
690
702
  <span class="method-name">do_put</span><span class="method-args">(path='/', data=nil, headers={})</span>
691
703
  </a>
692
704
  </div>
693
705
 
694
706
  <div class="method-description">
695
707
  <p><a class="source-toggle" href="#"
696
- onclick="toggleCode('M000146-source');return false;">[Source]</a></p>
697
- <div class="method-source-code" id="M000146-source">
708
+ onclick="toggleCode('M000149-source');return false;">[Source]</a></p>
709
+ <div class="method-source-code" id="M000149-source">
698
710
  <pre>
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>
711
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 536</span>
712
+ 536: <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>={})
713
+ 537: <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>)
714
+ 538: <span class="ruby-keyword kw">end</span>
703
715
  </pre>
704
716
  </div>
705
717
  </div>
706
718
  </div>
707
719
 
708
- <div id="method-M000117" class="method-detail">
709
- <a name="M000117"></a>
720
+ <div id="method-M000119" class="method-detail">
721
+ <a name="M000119"></a>
710
722
 
711
723
  <div class="method-heading">
712
- <a href="#M000117" class="method-signature">
724
+ <a href="#M000119" class="method-signature">
713
725
  <span class="method-name">do_request</span><span class="method-args">(method, path, data=nil, headers={})</span>
714
726
  </a>
715
727
  </div>
@@ -727,68 +739,69 @@ Returns a <a href="../Net/HTTPResponse.html">Net::HTTPResponse</a>
727
739
  instance.
728
740
  </p>
729
741
  <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">
742
+ onclick="toggleCode('M000119-source');return false;">[Source]</a></p>
743
+ <div class="method-source-code" id="M000119-source">
732
744
  <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>
745
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 130</span>
746
+ 130: <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>={})
747
+ 131: <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>)
748
+ 132: <span class="ruby-identifier">req</span>.<span class="ruby-identifier">chunk_size</span> = <span class="ruby-ivar">@chunk_size</span>
749
+ 133:
750
+ 134: <span class="ruby-comment cmt"># Add the S3 headers which are always required.</span>
751
+ 135: <span class="ruby-identifier">headers</span> = <span class="ruby-identifier">add_default_headers</span>(<span class="ruby-identifier">headers</span>)
752
+ 136:
753
+ 137: <span class="ruby-comment cmt"># Add any client-specific default headers.</span>
754
+ 138: <span class="ruby-identifier">headers</span> = <span class="ruby-identifier">add_client_headers</span>(<span class="ruby-identifier">headers</span>)
752
755
  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>
756
+ 140: <span class="ruby-comment cmt"># Generate the S3 authorization header.</span>
757
+ 141: <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>,
758
+ 142: <span class="ruby-ivar">@aws_access_key</span>, <span class="ruby-ivar">@aws_secret_access_key</span>)
759
+ 143:
760
+ 144: <span class="ruby-comment cmt"># Insert the headers into the request object.</span>
761
+ 145: <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>
762
+ 146: <span class="ruby-identifier">req</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">value</span>
763
+ 147: <span class="ruby-keyword kw">end</span>
764
+ 148:
765
+ 149: <span class="ruby-comment cmt"># Add data to the request as a stream.</span>
766
+ 150: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">req</span>.<span class="ruby-identifier">request_body_permitted?</span>
767
+ 151: <span class="ruby-comment cmt"># For streaming files; NB Content-Length will be set by Net::HTTP</span>
768
+ 152: <span class="ruby-comment cmt"># for character-based data: this section of code is only used</span>
769
+ 153: <span class="ruby-comment cmt"># when reading directly from a file.</span>
770
+ 154: <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>)
771
+ 155: <span class="ruby-identifier">req</span>.<span class="ruby-identifier">body_stream</span> = <span class="ruby-identifier">data</span>
772
+ 156: <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>
773
+ 157: <span class="ruby-identifier">data</span> = <span class="ruby-keyword kw">nil</span>
774
+ 158: <span class="ruby-keyword kw">end</span>
775
+ 159: <span class="ruby-keyword kw">else</span>
776
+ 160: <span class="ruby-identifier">data</span> = <span class="ruby-keyword kw">nil</span>
777
+ 161: <span class="ruby-keyword kw">end</span>
778
+ 162:
779
+ 163: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@dump_requests</span>
780
+ 164: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">req</span>.<span class="ruby-identifier">to_s</span>
781
+ 165: <span class="ruby-keyword kw">end</span>
782
+ 166:
783
+ 167: <span class="ruby-comment cmt"># Run the request.</span>
784
+ 168: <span class="ruby-identifier">client</span> = <span class="ruby-identifier">get_client</span>
785
+ 169: <span class="ruby-identifier">client</span>.<span class="ruby-identifier">start</span> <span class="ruby-keyword kw">do</span>
786
+ 170: <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>)
787
+ 171:
788
+ 172: <span class="ruby-comment cmt"># Check the response to see whether S3 is down;</span>
789
+ 173: <span class="ruby-comment cmt"># raises an S3FallenOver error if S3 returns a 500-503 response code</span>
790
+ 174: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">check_s3_availability</span>
791
+ 175:
792
+ 176: <span class="ruby-identifier">response</span>
793
+ 177: <span class="ruby-keyword kw">end</span>
794
+ 178: <span class="ruby-keyword kw">end</span>
782
795
  </pre>
783
796
  </div>
784
797
  </div>
785
798
  </div>
786
799
 
787
- <div id="method-M000133" class="method-detail">
788
- <a name="M000133"></a>
800
+ <div id="method-M000136" class="method-detail">
801
+ <a name="M000136"></a>
789
802
 
790
803
  <div class="method-heading">
791
- <a href="#M000133" class="method-signature">
804
+ <a href="#M000136" class="method-signature">
792
805
  <span class="method-name">enable_log_target</span><span class="method-args">(bucket_name)</span>
793
806
  </a>
794
807
  </div>
@@ -801,34 +814,34 @@ Make a bucket capable of being a target for access logging.
801
814
  Returns true if the bucket is now a possible log target; false otherwise.
802
815
  </p>
803
816
  <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">
817
+ onclick="toggleCode('M000136-source');return false;">[Source]</a></p>
818
+ <div class="method-source-code" id="M000136-source">
806
819
  <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>
820
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 382</span>
821
+ 382: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">enable_log_target</span>(<span class="ruby-identifier">bucket_name</span>)
822
+ 383: <span class="ruby-identifier">acl</span> = <span class="ruby-identifier">get_acl</span>(<span class="ruby-identifier">bucket_name</span>)
823
+ 384: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">acl</span>.<span class="ruby-identifier">add_log_target_grants</span>
824
+ 385: <span class="ruby-identifier">set_acl</span>(<span class="ruby-identifier">acl</span>, <span class="ruby-identifier">bucket_name</span>)
825
+ 386: <span class="ruby-keyword kw">end</span>
826
+ 387: <span class="ruby-identifier">acl</span>.<span class="ruby-identifier">log_targetable?</span>
827
+ 388: <span class="ruby-keyword kw">end</span>
815
828
  </pre>
816
829
  </div>
817
830
  </div>
818
831
  </div>
819
832
 
820
- <div id="method-M000135" class="method-detail">
821
- <a name="M000135"></a>
833
+ <div id="method-M000138" class="method-detail">
834
+ <a name="M000138"></a>
822
835
 
823
836
  <div class="method-heading">
824
- <a href="#M000135" class="method-signature">
837
+ <a href="#M000138" class="method-signature">
825
838
  <span class="method-name">enable_logging</span><span class="method-args">(bucket_name, log_bucket=nil, options={})</span>
826
839
  </a>
827
840
  </div>
828
841
 
829
842
  <div class="method-description">
830
843
  <p>
831
- Enable logging for a resource (bucket or key).
844
+ Enable logging for a resource (only buckets are supported presently).
832
845
  </p>
833
846
  <p>
834
847
  <tt>log_prefix</tt> is the prefix for the logs. <tt>bucket_name</tt> is the
@@ -844,36 +857,37 @@ options:
844
857
  (defaults to bucket_name + '-')
845
858
  </pre>
846
859
  <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">
860
+ onclick="toggleCode('M000138-source');return false;">[Source]</a></p>
861
+ <div class="method-source-code" id="M000138-source">
849
862
  <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>
863
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 416</span>
864
+ 416: <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>={})
865
+ 417: <span class="ruby-comment cmt"># Set to the default log_bucket if not set explicitly.</span>
866
+ 418: <span class="ruby-identifier">log_bucket</span> <span class="ruby-operator">||=</span> <span class="ruby-ivar">@log_bucket</span>
867
+ 419:
868
+ 420: <span class="ruby-identifier">resource_key</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:for_key</span>]
869
+ 421: <span class="ruby-identifier">resource_key</span> <span class="ruby-operator">||=</span> <span class="ruby-value str">''</span>
870
+ 422:
871
+ 423: <span class="ruby-identifier">log_prefix</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:prefix</span>]
872
+ 424: <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>
873
+ 425:
874
+ 426: <span class="ruby-identifier">log_bucket_acl</span> = <span class="ruby-identifier">get_acl</span>(<span class="ruby-identifier">log_bucket</span>)
875
+ 427: <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>)
876
+ 428: <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>
877
+ 429: <span class="ruby-keyword kw">end</span>
878
+ 430: <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>)
879
+ 431: <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>)
880
+ 432: <span class="ruby-keyword kw">end</span>
867
881
  </pre>
868
882
  </div>
869
883
  </div>
870
884
  </div>
871
885
 
872
- <div id="method-M000128" class="method-detail">
873
- <a name="M000128"></a>
886
+ <div id="method-M000131" class="method-detail">
887
+ <a name="M000131"></a>
874
888
 
875
889
  <div class="method-heading">
876
- <a href="#M000128" class="method-signature">
890
+ <a href="#M000131" class="method-signature">
877
891
  <span class="method-name">get_acl</span><span class="method-args">(bucket_name, resource_key='')</span>
878
892
  </a>
879
893
  </div>
@@ -883,33 +897,33 @@ options:
883
897
  Fetch the ACL document for a resource.
884
898
  </p>
885
899
  <p>
886
- Returns nil if there is a problem with the resource (e.g. it doesn&#8217;t
887
- exist).
900
+ Raises an exception if there is a problem with the resource (e.g. it
901
+ doesn&#8217;t exist).
888
902
  </p>
889
903
  <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">
904
+ onclick="toggleCode('M000131-source');return false;">[Source]</a></p>
905
+ <div class="method-source-code" id="M000131-source">
892
906
  <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>
907
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 326</span>
908
+ 326: <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>)
909
+ 327: <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>)
910
+ 328: <span class="ruby-identifier">response</span> = <span class="ruby-identifier">do_get</span>(<span class="ruby-identifier">path</span>)
911
+ 329: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">ok?</span>
912
+ 330: <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>)
913
+ 331: <span class="ruby-keyword kw">else</span>
914
+ 332: <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>
915
+ 333: <span class="ruby-keyword kw">end</span>
916
+ 334: <span class="ruby-keyword kw">end</span>
903
917
  </pre>
904
918
  </div>
905
919
  </div>
906
920
  </div>
907
921
 
908
- <div id="method-M000114" class="method-detail">
909
- <a name="M000114"></a>
922
+ <div id="method-M000116" class="method-detail">
923
+ <a name="M000116"></a>
910
924
 
911
925
  <div class="method-heading">
912
- <a href="#M000114" class="method-signature">
926
+ <a href="#M000116" class="method-signature">
913
927
  <span class="method-name">get_client</span><span class="method-args">()</span>
914
928
  </a>
915
929
  </div>
@@ -921,51 +935,51 @@ Get an HTTP client instance.
921
935
  <p>
922
936
  NB this has been moved here so that client instances are only instantiated
923
937
  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).
938
+ shell when <a href="Client.html#M000121">list_buckets</a> is called).
925
939
  </p>
926
940
  <p><a class="source-toggle" href="#"
927
- onclick="toggleCode('M000114-source');return false;">[Source]</a></p>
928
- <div class="method-source-code" id="M000114-source">
941
+ onclick="toggleCode('M000116-source');return false;">[Source]</a></p>
942
+ <div class="method-source-code" id="M000116-source">
929
943
  <pre>
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>
944
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 79</span>
945
+ 79: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_client</span>
946
+ 80: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@use_ssl</span>
947
+ 81: <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>)
948
+ 82: <span class="ruby-comment cmt"># turn off SSL certificate verification</span>
949
+ 83: <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>
950
+ 84: <span class="ruby-identifier">client</span>.<span class="ruby-identifier">use_ssl</span> = <span class="ruby-keyword kw">true</span>
951
+ 85: <span class="ruby-keyword kw">else</span>
952
+ 86: <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>)
953
+ 87: <span class="ruby-identifier">client</span>.<span class="ruby-identifier">use_ssl</span> = <span class="ruby-keyword kw">false</span>
954
+ 88: <span class="ruby-keyword kw">end</span>
955
+ 89:
956
+ 90: <span class="ruby-identifier">client</span>
957
+ 91: <span class="ruby-keyword kw">end</span>
944
958
  </pre>
945
959
  </div>
946
960
  </div>
947
961
  </div>
948
962
 
949
- <div id="method-M000137" class="method-detail">
950
- <a name="M000137"></a>
963
+ <div id="method-M000140" class="method-detail">
964
+ <a name="M000140"></a>
951
965
 
952
966
  <div class="method-heading">
953
- <a href="#M000137" class="method-signature">
967
+ <a href="#M000140" class="method-signature">
954
968
  <span class="method-name">get_logging</span><span class="method-args">()</span>
955
969
  </a>
956
970
  </div>
957
971
 
958
972
  <div class="method-description">
959
973
  <p>
960
- TODO
974
+ Get the logging status of a resource.
961
975
  </p>
962
976
  <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">
977
+ onclick="toggleCode('M000140-source');return false;">[Source]</a></p>
978
+ <div class="method-source-code" id="M000140-source">
965
979
  <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>
980
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 441</span>
981
+ 441: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_logging</span>
982
+ 442: <span class="ruby-keyword kw">end</span>
969
983
  </pre>
970
984
  </div>
971
985
  </div>
@@ -976,35 +990,70 @@ TODO
976
990
 
977
991
  <div class="method-heading">
978
992
  <a href="#M000127" class="method-signature">
979
- <span class="method-name">get_object</span><span class="method-args">(bucket_name, resource_key, headers)</span>
993
+ <span class="method-name">get_named_bucket</span><span class="method-args">(bucket_name, options={}) {|named_bucket if block_given?| ...}</span>
980
994
  </a>
981
995
  </div>
982
996
 
983
997
  <div class="method-description">
984
998
  <p>
985
- Fetch an object.
999
+ Create a <a href="NamedBucket.html">NamedBucket</a> instance.
986
1000
  </p>
987
1001
  <p>
988
- TODO: return <a href="S3Object.html">S3Object</a>
1002
+ <tt>options</tt> is a hash of extra options to use when creating the <a
1003
+ href="NamedBucket.html">NamedBucket</a> instance (see
1004
+ NamedBucket.initialize); specify :parent to use the same options used to
1005
+ create this <a href="Client.html">Client</a> instance.
989
1006
  </p>
990
1007
  <p><a class="source-toggle" href="#"
991
1008
  onclick="toggleCode('M000127-source');return false;">[Source]</a></p>
992
1009
  <div class="method-source-code" id="M000127-source">
993
1010
  <pre>
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>
1011
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 290</span>
1012
+ 290: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_named_bucket</span>(<span class="ruby-identifier">bucket_name</span>, <span class="ruby-identifier">options</span>={}, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
1013
+ 291: <span class="ruby-identifier">options</span> = <span class="ruby-ivar">@options</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">:parent</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">options</span>
1014
+ 292: <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:default_bucket</span>] = <span class="ruby-identifier">bucket_name</span>
1015
+ 293: <span class="ruby-identifier">named_bucket</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>, <span class="ruby-identifier">options</span>)
1016
+ 294: <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">named_bucket</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
1017
+ 295: <span class="ruby-identifier">named_bucket</span>
1018
+ 296: <span class="ruby-keyword kw">end</span>
998
1019
  </pre>
999
1020
  </div>
1000
1021
  </div>
1001
1022
  </div>
1002
1023
 
1003
- <div id="method-M000118" class="method-detail">
1004
- <a name="M000118"></a>
1024
+ <div id="method-M000130" class="method-detail">
1025
+ <a name="M000130"></a>
1005
1026
 
1006
1027
  <div class="method-heading">
1007
- <a href="#M000118" class="method-signature">
1028
+ <a href="#M000130" class="method-signature">
1029
+ <span class="method-name">get_object</span><span class="method-args">(bucket_name, resource_key, headers={})</span>
1030
+ </a>
1031
+ </div>
1032
+
1033
+ <div class="method-description">
1034
+ <p>
1035
+ Fetch an object. Note that this actually pulls down the object from S3 and
1036
+ instantiates the <a href="S3Object.html">S3Object</a> instance with it.
1037
+ </p>
1038
+ <p><a class="source-toggle" href="#"
1039
+ onclick="toggleCode('M000130-source');return false;">[Source]</a></p>
1040
+ <div class="method-source-code" id="M000130-source">
1041
+ <pre>
1042
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 317</span>
1043
+ 317: <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>={})
1044
+ 318: <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>)
1045
+ 319: <span class="ruby-constant">S3Object</span>.<span class="ruby-identifier">from_response</span>(<span class="ruby-identifier">resource_key</span>, <span class="ruby-identifier">response</span>)
1046
+ 320: <span class="ruby-keyword kw">end</span>
1047
+ </pre>
1048
+ </div>
1049
+ </div>
1050
+ </div>
1051
+
1052
+ <div id="method-M000120" class="method-detail">
1053
+ <a name="M000120"></a>
1054
+
1055
+ <div class="method-heading">
1056
+ <a href="#M000120" class="method-signature">
1008
1057
  <span class="method-name">get_requester</span><span class="method-args">(method, path)</span>
1009
1058
  </a>
1010
1059
  </div>
@@ -1014,24 +1063,24 @@ TODO: return <a href="S3Object.html">S3Object</a>
1014
1063
  Return an instance of an appropriate request class.
1015
1064
  </p>
1016
1065
  <p><a class="source-toggle" href="#"
1017
- onclick="toggleCode('M000118-source');return false;">[Source]</a></p>
1018
- <div class="method-source-code" id="M000118-source">
1066
+ onclick="toggleCode('M000120-source');return false;">[Source]</a></p>
1067
+ <div class="method-source-code" id="M000120-source">
1019
1068
  <pre>
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>
1069
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 181</span>
1070
+ 181: <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>)
1071
+ 182: <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>))
1072
+ 183: <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>)
1073
+ 184: <span class="ruby-keyword kw">end</span>
1025
1074
  </pre>
1026
1075
  </div>
1027
1076
  </div>
1028
1077
  </div>
1029
1078
 
1030
- <div id="method-M000125" class="method-detail">
1031
- <a name="M000125"></a>
1079
+ <div id="method-M000128" class="method-detail">
1080
+ <a name="M000128"></a>
1032
1081
 
1033
1082
  <div class="method-heading">
1034
- <a href="#M000125" class="method-signature">
1083
+ <a href="#M000128" class="method-signature">
1035
1084
  <span class="method-name">get_resource</span><span class="method-args">(bucket_name, resource_key, headers={})</span>
1036
1085
  </a>
1037
1086
  </div>
@@ -1039,25 +1088,30 @@ Return an instance of an appropriate request class.
1039
1088
  <div class="method-description">
1040
1089
  <p>
1041
1090
  Fetch a resource.
1091
+ </p>
1092
+ <p>
1093
+ Returns a plain response, not an <a href="S3Object.html">S3Object</a>: if
1094
+ you want an object back, use <a href="Client.html#M000130">get_object</a>
1095
+ instead.
1042
1096
  </p>
1043
1097
  <p><a class="source-toggle" href="#"
1044
- onclick="toggleCode('M000125-source');return false;">[Source]</a></p>
1045
- <div class="method-source-code" id="M000125-source">
1098
+ onclick="toggleCode('M000128-source');return false;">[Source]</a></p>
1099
+ <div class="method-source-code" id="M000128-source">
1046
1100
  <pre>
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>
1101
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 302</span>
1102
+ 302: <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>={})
1103
+ 303: <span class="ruby-identifier">do_get</span>(<span class="ruby-node">&quot;/#{bucket_name}/#{resource_key}&quot;</span>, <span class="ruby-identifier">headers</span>)
1104
+ 304: <span class="ruby-keyword kw">end</span>
1051
1105
  </pre>
1052
1106
  </div>
1053
1107
  </div>
1054
1108
  </div>
1055
1109
 
1056
- <div id="method-M000120" class="method-detail">
1057
- <a name="M000120"></a>
1110
+ <div id="method-M000122" class="method-detail">
1111
+ <a name="M000122"></a>
1058
1112
 
1059
1113
  <div class="method-heading">
1060
- <a href="#M000120" class="method-signature">
1114
+ <a href="#M000122" class="method-signature">
1061
1115
  <span class="method-name">list</span><span class="method-args">()</span>
1062
1116
  </a>
1063
1117
  </div>
@@ -1067,23 +1121,23 @@ Fetch a resource.
1067
1121
  List just bucket names.
1068
1122
  </p>
1069
1123
  <p><a class="source-toggle" href="#"
1070
- onclick="toggleCode('M000120-source');return false;">[Source]</a></p>
1071
- <div class="method-source-code" id="M000120-source">
1124
+ onclick="toggleCode('M000122-source');return false;">[Source]</a></p>
1125
+ <div class="method-source-code" id="M000122-source">
1072
1126
  <pre>
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>
1127
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 211</span>
1128
+ 211: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">list</span>
1129
+ 212: <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>}
1130
+ 213: <span class="ruby-keyword kw">end</span>
1077
1131
  </pre>
1078
1132
  </div>
1079
1133
  </div>
1080
1134
  </div>
1081
1135
 
1082
- <div id="method-M000121" class="method-detail">
1083
- <a name="M000121"></a>
1136
+ <div id="method-M000123" class="method-detail">
1137
+ <a name="M000123"></a>
1084
1138
 
1085
1139
  <div class="method-heading">
1086
- <a href="#M000121" class="method-signature">
1140
+ <a href="#M000123" class="method-signature">
1087
1141
  <span class="method-name">list_bucket</span><span class="method-args">(bucket_name, query_params={})</span>
1088
1142
  </a>
1089
1143
  </div>
@@ -1141,34 +1195,34 @@ Returns [raw_response, <a href="BucketListing.html">BucketListing</a>
1141
1195
  instance].
1142
1196
  </p>
1143
1197
  <p><a class="source-toggle" href="#"
1144
- onclick="toggleCode('M000121-source');return false;">[Source]</a></p>
1145
- <div class="method-source-code" id="M000121-source">
1198
+ onclick="toggleCode('M000123-source');return false;">[Source]</a></p>
1199
+ <div class="method-source-code" id="M000123-source">
1146
1200
  <pre>
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>
1201
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 239</span>
1202
+ 239: <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>={})
1203
+ 240: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">query_params</span>[<span class="ruby-identifier">:max_keys</span>]
1204
+ 241: <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>
1205
+ 242: <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> \
1206
+ 243: <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>
1207
+ 244:
1208
+ 245: <span class="ruby-comment cmt"># convert :max_keys querystring parameter to 'max-keys' parameter</span>
1209
+ 246: <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>)
1210
+ 247: <span class="ruby-keyword kw">end</span>
1211
+ 248:
1212
+ 249: <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>))
1213
+ 250:
1214
+ 251: [<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>)]
1215
+ 252: <span class="ruby-keyword kw">end</span>
1162
1216
  </pre>
1163
1217
  </div>
1164
1218
  </div>
1165
1219
  </div>
1166
1220
 
1167
- <div id="method-M000119" class="method-detail">
1168
- <a name="M000119"></a>
1221
+ <div id="method-M000121" class="method-detail">
1222
+ <a name="M000121"></a>
1169
1223
 
1170
1224
  <div class="method-heading">
1171
- <a href="#M000119" class="method-signature">
1225
+ <a href="#M000121" class="method-signature">
1172
1226
  <span class="method-name">list_buckets</span><span class="method-args">()</span>
1173
1227
  </a>
1174
1228
  </div>
@@ -1178,62 +1232,65 @@ instance].
1178
1232
  List all buckets.
1179
1233
  </p>
1180
1234
  <p>
1181
- Returns an Array of <a href="NamedBucket.html">NamedBucket</a> instances.
1235
+ Returns an array of <a href="NamedBucket.html">NamedBucket</a> instances;
1236
+ array will be empty if the <a href="BucketListing.html">BucketListing</a>
1237
+ parse fails for any reason (i.e. no &lt;Bucket&gt; elements occur in it).
1182
1238
  </p>
1183
1239
  <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">
1240
+ onclick="toggleCode('M000121-source');return false;">[Source]</a></p>
1241
+ <div class="method-source-code" id="M000121-source">
1186
1242
  <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>
1243
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 191</span>
1244
+ 191: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">list_buckets</span>
1245
+ 192: <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>
1246
+ 193: <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>))
1247
+ 194:
1248
+ 195: <span class="ruby-identifier">named_buckets</span> = []
1249
+ 196:
1250
+ 197: <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>
1251
+ 198: <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>)
1252
+ 199: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">bucket_name</span>
1253
+ 200: <span class="ruby-comment cmt"># The NamedBucket instances inherit the request dumping behaviour</span>
1254
+ 201: <span class="ruby-comment cmt"># of this client.</span>
1255
+ 202: <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>,
1256
+ 203: {<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>})
1257
+ 204: <span class="ruby-keyword kw">end</span>
1258
+ 205: <span class="ruby-keyword kw">end</span>
1259
+ 206:
1260
+ 207: <span class="ruby-identifier">named_buckets</span>
1261
+ 208: <span class="ruby-keyword kw">end</span>
1202
1262
  </pre>
1203
1263
  </div>
1204
1264
  </div>
1205
1265
  </div>
1206
1266
 
1207
- <div id="method-M000132" class="method-detail">
1208
- <a name="M000132"></a>
1267
+ <div id="method-M000135" class="method-detail">
1268
+ <a name="M000135"></a>
1209
1269
 
1210
1270
  <div class="method-heading">
1211
- <a href="#M000132" class="method-signature">
1271
+ <a href="#M000135" class="method-signature">
1212
1272
  <span class="method-name">make_private</span><span class="method-args">()</span>
1213
1273
  </a>
1214
1274
  </div>
1215
1275
 
1216
1276
  <div class="method-description">
1217
- <p>
1218
- TODO
1219
- </p>
1220
1277
  <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">
1278
+ onclick="toggleCode('M000135-source');return false;">[Source]</a></p>
1279
+ <div class="method-source-code" id="M000135-source">
1223
1280
  <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>
1281
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 373</span>
1282
+ 373: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">make_private</span>
1283
+ 374: <span class="ruby-keyword kw">end</span>
1227
1284
  </pre>
1228
1285
  </div>
1229
1286
  </div>
1230
1287
  </div>
1231
1288
 
1232
- <div id="method-M000131" class="method-detail">
1233
- <a name="M000131"></a>
1289
+ <div id="method-M000134" class="method-detail">
1290
+ <a name="M000134"></a>
1234
1291
 
1235
1292
  <div class="method-heading">
1236
- <a href="#M000131" class="method-signature">
1293
+ <a href="#M000134" class="method-signature">
1237
1294
  <span class="method-name">make_public</span><span class="method-args">(bucket_name, resource_key='')</span>
1238
1295
  </a>
1239
1296
  </div>
@@ -1248,26 +1305,26 @@ public too.
1248
1305
  Returns nil if resource does not exist.
1249
1306
  </p>
1250
1307
  <p><a class="source-toggle" href="#"
1251
- onclick="toggleCode('M000131-source');return false;">[Source]</a></p>
1252
- <div class="method-source-code" id="M000131-source">
1308
+ onclick="toggleCode('M000134-source');return false;">[Source]</a></p>
1309
+ <div class="method-source-code" id="M000134-source">
1253
1310
  <pre>
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>
1311
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 365</span>
1312
+ 365: <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>)
1313
+ 366: <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>)
1314
+ 367: <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>
1315
+ 368: <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>)
1316
+ 369: <span class="ruby-keyword kw">end</span>
1317
+ 370: <span class="ruby-keyword kw">end</span>
1261
1318
  </pre>
1262
1319
  </div>
1263
1320
  </div>
1264
1321
  </div>
1265
1322
 
1266
- <div id="method-M000140" class="method-detail">
1267
- <a name="M000140"></a>
1323
+ <div id="method-M000143" class="method-detail">
1324
+ <a name="M000143"></a>
1268
1325
 
1269
1326
  <div class="method-heading">
1270
- <a href="#M000140" class="method-signature">
1327
+ <a href="#M000143" class="method-signature">
1271
1328
  <span class="method-name">put_file</span><span class="method-args">(filename, bucket_name, resource_key=nil, headers={}, options={})</span>
1272
1329
  </a>
1273
1330
  </div>
@@ -1302,49 +1359,51 @@ Note that this method uses a handle to the file, so it can be streamed in
1302
1359
  chunks to S3.
1303
1360
  </p>
1304
1361
  <p><a class="source-toggle" href="#"
1305
- onclick="toggleCode('M000140-source');return false;">[Source]</a></p>
1306
- <div class="method-source-code" id="M000140-source">
1362
+ onclick="toggleCode('M000143-source');return false;">[Source]</a></p>
1363
+ <div class="method-source-code" id="M000143-source">
1307
1364
  <pre>
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>
1365
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 473</span>
1366
+ 473: <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>={})
1367
+ 474: <span class="ruby-comment cmt"># default to the file path as the resource key if none explicitly set</span>
1368
+ 475: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resource_key</span>.<span class="ruby-identifier">nil?</span>
1369
+ 476: <span class="ruby-identifier">resource_key</span> = <span class="ruby-identifier">filename</span>
1370
+ 477: <span class="ruby-keyword kw">end</span>
1371
+ 478:
1372
+ 479: <span class="ruby-comment cmt"># set Content-Disposition header</span>
1373
+ 480: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:render_as_attachment</span>]
1374
+ 481: <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>
1375
+ 482: <span class="ruby-keyword kw">end</span>
1376
+ 483:
1377
+ 484: <span class="ruby-comment cmt"># content type is explicitly set in the headers, so apply to request</span>
1378
+ 485: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">headers</span>[<span class="ruby-identifier">:content_type</span>]
1379
+ 486: <span class="ruby-comment cmt"># use the first MIME type corresponding to this content type string</span>
1380
+ 487: <span class="ruby-comment cmt"># (MIME::Types returns an array of possible MIME types)</span>
1381
+ 488: <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>]
1382
+ 489: <span class="ruby-keyword kw">else</span>
1383
+ 490: <span class="ruby-comment cmt"># we're not going to use this much, just for parsing the content type etc.</span>
1384
+ 491: <span class="ruby-identifier">mime_type</span> = <span class="ruby-identifier">guess_mime_type</span>(<span class="ruby-identifier">filename</span>)
1385
+ 492: <span class="ruby-keyword kw">end</span>
1386
+ 493: <span class="ruby-identifier">content_type</span> = <span class="ruby-identifier">mime_type</span>.<span class="ruby-identifier">simplified</span>
1387
+ 494: <span class="ruby-identifier">headers</span>[<span class="ruby-value str">'Content-Type'</span>] = <span class="ruby-identifier">content_type</span>
1388
+ 495: <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>
1389
+ 496:
1390
+ 497: <span class="ruby-comment cmt"># Open the file, and pass the handle to the HTTP client so content</span>
1391
+ 498: <span class="ruby-comment cmt"># can be streamed.</span>
1392
+ 499: <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>
1393
+ 500: <span class="ruby-comment cmt"># send the put request</span>
1394
+ 501: <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>)
1395
+ 502: <span class="ruby-keyword kw">end</span>
1396
+ 503: <span class="ruby-keyword kw">end</span>
1338
1397
  </pre>
1339
1398
  </div>
1340
1399
  </div>
1341
1400
  </div>
1342
1401
 
1343
- <div id="method-M000138" class="method-detail">
1344
- <a name="M000138"></a>
1402
+ <div id="method-M000141" class="method-detail">
1403
+ <a name="M000141"></a>
1345
1404
 
1346
1405
  <div class="method-heading">
1347
- <a href="#M000138" class="method-signature">
1406
+ <a href="#M000141" class="method-signature">
1348
1407
  <span class="method-name">put_resource</span><span class="method-args">(bucket_name, resource_key, data, headers={})</span>
1349
1408
  </a>
1350
1409
  </div>
@@ -1352,25 +1411,32 @@ chunks to S3.
1352
1411
  <div class="method-description">
1353
1412
  <p>
1354
1413
  Put some generic resource onto S3.
1414
+ </p>
1415
+ <p>
1416
+ To stream with this method, <tt>data</tt> should respond to the
1417
+ <tt>stat</tt> method; examples of data types which respond to this include
1418
+ File instances.
1355
1419
  </p>
1356
1420
  <p><a class="source-toggle" href="#"
1357
- onclick="toggleCode('M000138-source');return false;">[Source]</a></p>
1358
- <div class="method-source-code" id="M000138-source">
1421
+ onclick="toggleCode('M000141-source');return false;">[Source]</a></p>
1422
+ <div class="method-source-code" id="M000141-source">
1359
1423
  <pre>
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>
1424
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 448</span>
1425
+ 448: <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>={})
1426
+ 449: <span class="ruby-identifier">raise</span> <span class="ruby-constant">S33r</span><span class="ruby-operator">::</span><span class="ruby-constant">S33rException</span><span class="ruby-operator">::</span><span class="ruby-constant">TryingToPutEmptyResource</span>, <span class="ruby-node">&quot;No data to put for key '#{resource_key}'&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">data</span>
1427
+ 450: <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-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>)
1428
+ 451: <span class="ruby-identifier">resp</span>.<span class="ruby-identifier">ok?</span>
1429
+ 452: <span class="ruby-keyword kw">end</span>
1364
1430
  </pre>
1365
1431
  </div>
1366
1432
  </div>
1367
1433
  </div>
1368
1434
 
1369
- <div id="method-M000139" class="method-detail">
1370
- <a name="M000139"></a>
1435
+ <div id="method-M000142" class="method-detail">
1436
+ <a name="M000142"></a>
1371
1437
 
1372
1438
  <div class="method-heading">
1373
- <a href="#M000139" class="method-signature">
1439
+ <a href="#M000142" class="method-signature">
1374
1440
  <span class="method-name">put_text</span><span class="method-args">(string, bucket_name, resource_key, headers={})</span>
1375
1441
  </a>
1376
1442
  </div>
@@ -1380,24 +1446,24 @@ Put some generic resource onto S3.
1380
1446
  Put a string onto S3.
1381
1447
  </p>
1382
1448
  <p><a class="source-toggle" href="#"
1383
- onclick="toggleCode('M000139-source');return false;">[Source]</a></p>
1384
- <div class="method-source-code" id="M000139-source">
1449
+ onclick="toggleCode('M000142-source');return false;">[Source]</a></p>
1450
+ <div class="method-source-code" id="M000142-source">
1385
1451
  <pre>
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>
1452
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 455</span>
1453
+ 455: <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>={})
1454
+ 456: <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>
1455
+ 457: <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>)
1456
+ 458: <span class="ruby-keyword kw">end</span>
1391
1457
  </pre>
1392
1458
  </div>
1393
1459
  </div>
1394
1460
  </div>
1395
1461
 
1396
- <div id="method-M000126" class="method-detail">
1397
- <a name="M000126"></a>
1462
+ <div id="method-M000129" class="method-detail">
1463
+ <a name="M000129"></a>
1398
1464
 
1399
1465
  <div class="method-heading">
1400
- <a href="#M000126" class="method-signature">
1466
+ <a href="#M000129" class="method-signature">
1401
1467
  <span class="method-name">resource_exists?</span><span class="method-args">(bucket_name, resource_key=nil)</span>
1402
1468
  </a>
1403
1469
  </div>
@@ -1407,35 +1473,35 @@ Put a string onto S3.
1407
1473
  Check whether a bucket contains a key.
1408
1474
  </p>
1409
1475
  <p>
1410
- Returns true if resource_key exists inside bucket_name exists.
1476
+ Returns true if resource_key exists inside bucket_name.
1411
1477
  </p>
1412
1478
  <p><a class="source-toggle" href="#"
1413
- onclick="toggleCode('M000126-source');return false;">[Source]</a></p>
1414
- <div class="method-source-code" id="M000126-source">
1479
+ onclick="toggleCode('M000129-source');return false;">[Source]</a></p>
1480
+ <div class="method-source-code" id="M000129-source">
1415
1481
  <pre>
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>
1482
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 309</span>
1483
+ 309: <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>)
1484
+ 310: <span class="ruby-identifier">path</span> = <span class="ruby-node">&quot;/#{bucket_name}&quot;</span>
1485
+ 311: <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>
1486
+ 312: <span class="ruby-identifier">do_head</span>(<span class="ruby-identifier">path</span>).<span class="ruby-identifier">ok?</span>
1487
+ 313: <span class="ruby-keyword kw">end</span>
1422
1488
  </pre>
1423
1489
  </div>
1424
1490
  </div>
1425
1491
  </div>
1426
1492
 
1427
- <div id="method-M000129" class="method-detail">
1428
- <a name="M000129"></a>
1493
+ <div id="method-M000132" class="method-detail">
1494
+ <a name="M000132"></a>
1429
1495
 
1430
1496
  <div class="method-heading">
1431
- <a href="#M000129" class="method-signature">
1497
+ <a href="#M000132" class="method-signature">
1432
1498
  <span class="method-name">set_acl</span><span class="method-args">(acl_doc, bucket_name, resource_key='')</span>
1433
1499
  </a>
1434
1500
  </div>
1435
1501
 
1436
1502
  <div class="method-description">
1437
1503
  <p>
1438
- Put the ACL document for a resource.
1504
+ Put the ACL document back to a resource.
1439
1505
  </p>
1440
1506
  <p>
1441
1507
  <tt>acl_doc</tt> is an <a href="S3ACL/ACLDoc.html">S33r::S3ACL::ACLDoc</a>
@@ -1447,25 +1513,25 @@ Bad Request back, it means a CanonicalUser could not be identified from the
1447
1513
  email address.
1448
1514
  </p>
1449
1515
  <p><a class="source-toggle" href="#"
1450
- onclick="toggleCode('M000129-source');return false;">[Source]</a></p>
1451
- <div class="method-source-code" id="M000129-source">
1516
+ onclick="toggleCode('M000132-source');return false;">[Source]</a></p>
1517
+ <div class="method-source-code" id="M000132-source">
1452
1518
  <pre>
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>
1519
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 343</span>
1520
+ 343: <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>)
1521
+ 344: <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>)
1522
+ 345: <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>)
1523
+ 346: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">ok?</span>
1524
+ 347: <span class="ruby-keyword kw">end</span>
1459
1525
  </pre>
1460
1526
  </div>
1461
1527
  </div>
1462
1528
  </div>
1463
1529
 
1464
- <div id="method-M000130" class="method-detail">
1465
- <a name="M000130"></a>
1530
+ <div id="method-M000133" class="method-detail">
1531
+ <a name="M000133"></a>
1466
1532
 
1467
1533
  <div class="method-heading">
1468
- <a href="#M000130" class="method-signature">
1534
+ <a href="#M000133" class="method-signature">
1469
1535
  <span class="method-name">set_logging</span><span class="method-args">(logging_resource, bucket_name, resource_key='')</span>
1470
1536
  </a>
1471
1537
  </div>
@@ -1481,14 +1547,14 @@ href="LoggingResource.html">LoggingResource</a> instance.
1481
1547
  to log (if empty, logging gets added to the bucket).
1482
1548
  </p>
1483
1549
  <p><a class="source-toggle" href="#"
1484
- onclick="toggleCode('M000130-source');return false;">[Source]</a></p>
1485
- <div class="method-source-code" id="M000130-source">
1550
+ onclick="toggleCode('M000133-source');return false;">[Source]</a></p>
1551
+ <div class="method-source-code" id="M000133-source">
1486
1552
  <pre>
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>
1553
+ <span class="ruby-comment cmt"># File lib/s33r/client.rb, line 355</span>
1554
+ 355: <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>)
1555
+ 356: <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>)
1556
+ 357: <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>)
1557
+ 358: <span class="ruby-keyword kw">end</span>
1492
1558
  </pre>
1493
1559
  </div>
1494
1560
  </div>