s33r 0.4.1 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>