google_storage 0.0.3 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,1508 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ Class: GoogleStorage::Client
8
+
9
+ &mdash; Documentation by YARD 0.7.2
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../css/style.css" type="text/css" media="screen" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../css/common.css" type="text/css" media="screen" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ relpath = '..';
19
+ if (relpath != '') relpath += '/';
20
+ </script>
21
+
22
+ <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
23
+
24
+ <script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
25
+
26
+
27
+ </head>
28
+ <body>
29
+ <script type="text/javascript" charset="utf-8">
30
+ if (window.top.frames.main) document.body.className = 'frames';
31
+ </script>
32
+
33
+ <div id="header">
34
+ <div id="menu">
35
+
36
+ <a href="../_index.html">Index (C)</a> &raquo;
37
+ <span class='title'><span class='object_link'><a href="../GoogleStorage.html" title="GoogleStorage (module)">GoogleStorage</a></span></span>
38
+ &raquo;
39
+ <span class="title">Client</span>
40
+
41
+
42
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
43
+ </div>
44
+
45
+ <div id="search">
46
+
47
+ <a id="class_list_link" href="#">Class List</a>
48
+
49
+ <a id="method_list_link" href="#">Method List</a>
50
+
51
+ <a id="file_list_link" href="#">File List</a>
52
+
53
+ </div>
54
+ <div class="clear"></div>
55
+ </div>
56
+
57
+ <iframe id="search_frame"></iframe>
58
+
59
+ <div id="content"><h1>Class: GoogleStorage::Client
60
+
61
+
62
+
63
+ </h1>
64
+
65
+ <dl class="box">
66
+
67
+ <dt class="r1">Inherits:</dt>
68
+ <dd class="r1">
69
+ <span class="inheritName">Object</span>
70
+
71
+ <ul class="fullTree">
72
+ <li>Object</li>
73
+
74
+ <li class="next">GoogleStorage::Client</li>
75
+
76
+ </ul>
77
+ <a href="#" class="inheritanceTree">show all</a>
78
+
79
+ </dd>
80
+
81
+
82
+
83
+
84
+
85
+
86
+
87
+
88
+
89
+ <dt class="r2 last">Defined in:</dt>
90
+ <dd class="r2 last">lib/google_storage/client.rb<span class="defines">,<br />
91
+ lib/google_storage/token.rb,<br /> lib/google_storage/bucket.rb,<br /> lib/google_storage/object.rb,<br /> lib/google_storage/request.rb</span>
92
+ </dd>
93
+
94
+ </dl>
95
+ <div class="clear"></div>
96
+
97
+ <h2>Overview</h2><div class="docstring">
98
+ <div class="discussion">
99
+ <h2>Buckets &amp; Objects</h2>
100
+ <p>
101
+ Buckets are the basic containers that hold all of your data. There is only
102
+ one Google namespace so every bucket across the entire namespace has to be
103
+ uniquely named so you may find that some bucket names have already been
104
+ taken.
105
+ </p>
106
+ <p>
107
+ You can have multiple folders and files within a bucket but you can&#8217;t
108
+ nest buckets inside of each other.
109
+ </p>
110
+ <p>
111
+ Objects are basically just another name for Files, stored within Google
112
+ Storage. Google Storage stores Objects in 2 parts, holding both the object
113
+ data and the object metadata. The metadata just holds key value data that
114
+ describes the objects properties.
115
+ </p>
116
+ <h2>Predefined ACL&#8217;s (Access Control Lists)</h2>
117
+ <p>
118
+ ACL&#8217;s allow you to control permission settings on Objects and Buckets
119
+ </p>
120
+ <p>
121
+ Google Storage uses access control lists (ACLs) to manage object and bucket
122
+ access. ACLs are the mechanism you use to share objects with other users
123
+ and allow other users to access your buckets and objects.
124
+ </p>
125
+ <p>
126
+ At the moment, this google_storage gem only supports the following
127
+ pre-defined ACL&#8217;s. I&#8217;ll add support for custom ACL&#8217;s
128
+ soon.
129
+ </p>
130
+ <table>
131
+ <tr><td valign="top">project-private </td><td><p>
132
+ Gives permission to the project team based on their roles. Anyone who is
133
+ part of the team has READ permission and project owners and project editors
134
+ have FULL_CONTROL permission. This is the default ACL that&#8217;s applied
135
+ when you create a bucket.
136
+ </p>
137
+ </td></tr>
138
+ <tr><td valign="top">private </td><td><p>
139
+ Gives the requester FULL_CONTROL permission for a bucket or object. This is
140
+ the default ACL that&#8217;s applied when you upload an object.
141
+ </p>
142
+ </td></tr>
143
+ <tr><td valign="top">public-read </td><td><p>
144
+ Gives the requester FULL_CONTROL permission and gives all anonymous users
145
+ READ permission. When you apply this to an object, anyone on the Internet
146
+ can read the object without authenticating.
147
+ </p>
148
+ </td></tr>
149
+ <tr><td valign="top">public-read-write </td><td><p>
150
+ Gives the requester FULL_CONTROL permission and gives all anonymous users
151
+ READ and WRITE permission. This ACL applies only to buckets.
152
+ </p>
153
+ </td></tr>
154
+ <tr><td valign="top">authenticated-read </td><td><p>
155
+ Gives the requester FULL_CONTROL permission and gives all authenticated
156
+ Google account holders READ permission.
157
+ </p>
158
+ </td></tr>
159
+ <tr><td valign="top">bucket-owner-read </td><td><p>
160
+ Gives the requester FULL_CONTROL permission and gives the bucket owner READ
161
+ permission. This is used only with objects.
162
+ </p>
163
+ </td></tr>
164
+ <tr><td valign="top">bucket-owner-full-control </td><td><p>
165
+ Gives the requester FULL_CONTROL permission and gives the bucket owner
166
+ FULL_CONTROL permission. This is used only with objects.
167
+ </p>
168
+ </td></tr>
169
+ </table>
170
+
171
+
172
+ </div>
173
+ </div>
174
+ <div class="tags">
175
+
176
+ </div>
177
+
178
+
179
+
180
+
181
+
182
+ <h2>
183
+ Instance Method Summary
184
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
185
+ </h2>
186
+
187
+ <ul class="summary">
188
+
189
+ <li class="public ">
190
+ <span class="summary_signature">
191
+
192
+ <a href="#acquire_refresh_token-instance_method" title="#acquire_refresh_token (instance method)">- (Object) <strong>acquire_refresh_token</strong>(token, options = {}) </a>
193
+
194
+
195
+
196
+ </span>
197
+
198
+
199
+
200
+
201
+
202
+
203
+
204
+
205
+ <span class="summary_desc"><div class='inline'></div></span>
206
+
207
+ </li>
208
+
209
+
210
+ <li class="public ">
211
+ <span class="summary_signature">
212
+
213
+ <a href="#authorization_url-instance_method" title="#authorization_url (instance method)">- (Object) <strong>authorization_url</strong>(scope) </a>
214
+
215
+
216
+
217
+ </span>
218
+
219
+
220
+
221
+
222
+
223
+
224
+
225
+
226
+ <span class="summary_desc"><div class='inline'></div></span>
227
+
228
+ </li>
229
+
230
+
231
+ <li class="public ">
232
+ <span class="summary_signature">
233
+
234
+ <a href="#bucket_acls-instance_method" title="#bucket_acls (instance method)">- (Object) <strong>bucket_acls</strong>(bucket_name, options = {}) </a>
235
+
236
+
237
+
238
+ </span>
239
+
240
+
241
+
242
+
243
+
244
+
245
+
246
+
247
+ <span class="summary_desc"><div class='inline'><p>
248
+ <b>Lists the ACL that has been applied to a bucket</b>.
249
+ </p>
250
+ </div></span>
251
+
252
+ </li>
253
+
254
+
255
+ <li class="public ">
256
+ <span class="summary_signature">
257
+
258
+ <a href="#create_bucket-instance_method" title="#create_bucket (instance method)">- (Object) <strong>create_bucket</strong>(bucket_name, options = {}) </a>
259
+
260
+
261
+
262
+ </span>
263
+
264
+
265
+
266
+
267
+
268
+
269
+
270
+
271
+ <span class="summary_desc"><div class='inline'><p>
272
+ <b>Creates a new bucket for your project and applies the
273
+ &#8216;project-private&#8217; ACL by default</b>.
274
+ </p>
275
+ </div></span>
276
+
277
+ </li>
278
+
279
+
280
+ <li class="public ">
281
+ <span class="summary_signature">
282
+
283
+ <a href="#delete_bucket-instance_method" title="#delete_bucket (instance method)">- (Object) <strong>delete_bucket</strong>(bucket_name, options = {}) </a>
284
+
285
+
286
+
287
+ </span>
288
+
289
+
290
+
291
+
292
+
293
+
294
+
295
+
296
+ <span class="summary_desc"><div class='inline'><p>
297
+ <b>Deletes a specified bucket from your project</b>.
298
+ </p>
299
+ </div></span>
300
+
301
+ </li>
302
+
303
+
304
+ <li class="public ">
305
+ <span class="summary_signature">
306
+
307
+ <a href="#delete_object-instance_method" title="#delete_object (instance method)">- (Object) <strong>delete_object</strong>(bucket_name, filename, options = {}) </a>
308
+
309
+
310
+
311
+ </span>
312
+
313
+
314
+
315
+
316
+
317
+
318
+
319
+
320
+ <span class="summary_desc"><div class='inline'><p>
321
+ <b>Deletes an Object from your bucket</b>.
322
+ </p>
323
+ </div></span>
324
+
325
+ </li>
326
+
327
+
328
+ <li class="public ">
329
+ <span class="summary_signature">
330
+
331
+ <a href="#get_bucket-instance_method" title="#get_bucket (instance method)">- (Object) <strong>get_bucket</strong>(bucket_name, options = {}) </a>
332
+
333
+
334
+
335
+ </span>
336
+
337
+
338
+
339
+
340
+
341
+
342
+
343
+
344
+ <span class="summary_desc"><div class='inline'><p>
345
+ <b>Returns a list of all Objects within a specified bucket</b>.
346
+ </p>
347
+ </div></span>
348
+
349
+ </li>
350
+
351
+
352
+ <li class="public ">
353
+ <span class="summary_signature">
354
+
355
+ <a href="#get_object-instance_method" title="#get_object (instance method)">- (Object) <strong>get_object</strong>(bucket_name, filename, options = {}) </a>
356
+
357
+
358
+
359
+ </span>
360
+
361
+
362
+
363
+
364
+
365
+
366
+
367
+
368
+ <span class="summary_desc"><div class='inline'><p>
369
+ <b>Returns a Google Storage Object inside of a Hash</b>.
370
+ </p>
371
+ </div></span>
372
+
373
+ </li>
374
+
375
+
376
+ <li class="public ">
377
+ <span class="summary_signature">
378
+
379
+ <a href="#initialize-instance_method" title="#initialize (instance method)">- (Client) <strong>initialize</strong>(options = {}) </a>
380
+
381
+
382
+
383
+ </span>
384
+
385
+ <span class="note title constructor">constructor</span>
386
+
387
+
388
+
389
+
390
+
391
+
392
+
393
+
394
+ <span class="summary_desc"><div class='inline'><p>
395
+ <b>You need to initialize a client to be able to make requests with the
396
+ google_storage gem</b>.
397
+ </p>
398
+ </div></span>
399
+
400
+ </li>
401
+
402
+
403
+ <li class="public ">
404
+ <span class="summary_signature">
405
+
406
+ <a href="#list_buckets-instance_method" title="#list_buckets (instance method)">- (Object) <strong>list_buckets</strong> </a>
407
+
408
+
409
+
410
+ </span>
411
+
412
+
413
+
414
+
415
+
416
+
417
+
418
+
419
+ <span class="summary_desc"><div class='inline'><p>
420
+ <b>Lists all buckets available within your project</b>.
421
+ </p>
422
+ </div></span>
423
+
424
+ </li>
425
+
426
+
427
+ <li class="public ">
428
+ <span class="summary_signature">
429
+
430
+ <a href="#object_acls-instance_method" title="#object_acls (instance method)">- (Object) <strong>object_acls</strong>(bucket_name, filename, options = {}) </a>
431
+
432
+
433
+
434
+ </span>
435
+
436
+
437
+
438
+
439
+
440
+
441
+
442
+
443
+ <span class="summary_desc"><div class='inline'><p>
444
+ <b>Lists the ACL that has been applied to a particular object</b>.
445
+ </p>
446
+ </div></span>
447
+
448
+ </li>
449
+
450
+
451
+ <li class="public ">
452
+ <span class="summary_signature">
453
+
454
+ <a href="#object_head-instance_method" title="#object_head (instance method)">- (Object) <strong>object_head</strong>(bucket_name, filename, options = {}) </a>
455
+
456
+
457
+
458
+ </span>
459
+
460
+
461
+
462
+
463
+
464
+
465
+
466
+
467
+ <span class="summary_desc"><div class='inline'><p>
468
+ <b>Returns the metadata of an Object stored</b>.
469
+ </p>
470
+ </div></span>
471
+
472
+ </li>
473
+
474
+
475
+ <li class="public ">
476
+ <span class="summary_signature">
477
+
478
+ <a href="#put_object-instance_method" title="#put_object (instance method)">- (Object) <strong>put_object</strong>(bucket_name, filename, options = {}) </a>
479
+
480
+
481
+
482
+ (also: #upload_object)
483
+
484
+ </span>
485
+
486
+
487
+
488
+
489
+
490
+
491
+
492
+
493
+ <span class="summary_desc"><div class='inline'><p>
494
+ <b>Uploads an Object to Google Storage, or updates if using the same
495
+ filename</b>.
496
+ </p>
497
+ </div></span>
498
+
499
+ </li>
500
+
501
+
502
+ </ul>
503
+
504
+
505
+ <div id="constructor_details" class="method_details_list">
506
+ <h2>Constructor Details</h2>
507
+
508
+ <div class="method_details first">
509
+ <p class="signature first" id="initialize-instance_method">
510
+
511
+ - (<tt><span class='object_link'><a href="" title="GoogleStorage::Client (class)">Client</a></span></tt>) <strong>initialize</strong>(options = {})
512
+
513
+
514
+
515
+ </p><div class="docstring">
516
+ <div class="discussion">
517
+ <p>
518
+ <b>You need to initialize a client to be able to make requests with the
519
+ google_storage gem</b>
520
+ </p>
521
+ <p>
522
+ Example:
523
+ </p>
524
+ <p>
525
+ The following will look for google_storage.yml in your rails config
526
+ directory
527
+ </p>
528
+ <pre class="code">
529
+ <span class='id client'>client</span> <span class='op'>=</span> <span class='const'>GoogleStorage</span><span class='op'>::</span><span class='const'>Client</span><span class='period'>.</span><span class='id new'>new</span>
530
+ </pre>
531
+ <p>
532
+ Otherwise you can pass in the path to the google_storage.yml
533
+ </p>
534
+ <pre class="code">
535
+ <span class='id client'>client</span> <span class='op'>=</span> <span class='const'>GoogleStorage</span><span class='op'>::</span><span class='const'>Client</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='symbol'>:config_yml</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>C:/example_path/google_storage.yml</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
536
+ </pre>
537
+ <p>
538
+ Other options:
539
+ </p>
540
+ <pre class="code">
541
+ :debug =&gt; true &lt;-- This will output all debug information from the HTTP requests to $stderr</pre>
542
+
543
+
544
+ </div>
545
+ </div>
546
+ <div class="tags">
547
+
548
+ </div><table class="source_code">
549
+ <tr>
550
+ <td>
551
+ <pre class="lines">
552
+
553
+
554
+ 63
555
+ 64
556
+ 65
557
+ 66
558
+ 67
559
+ 68
560
+ 69
561
+ 70
562
+ 71
563
+ 72
564
+ 73
565
+ 74
566
+ 75
567
+ 76
568
+ 77
569
+ 78
570
+ 79
571
+ 80
572
+ 81
573
+ 82
574
+ 83
575
+ 84
576
+ 85
577
+ 86
578
+ 87
579
+ 88
580
+ 89
581
+ 90
582
+ 91
583
+ 92
584
+ 93
585
+ 94
586
+ 95
587
+ 96
588
+ 97
589
+ 98
590
+ 99
591
+ 100
592
+ 101
593
+ 102
594
+ 103</pre>
595
+ </td>
596
+ <td>
597
+ <pre class="code"><span class="info file"># File 'lib/google_storage/client.rb', line 63</span>
598
+
599
+ <span class='kw'>def</span> <span class='id initialize'>initialize</span><span class='lparen'>(</span><span class='id options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
600
+
601
+ <span class='kw'>if</span> <span class='lparen'>(</span><span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:config_yml</span><span class='rbracket'>]</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:config_yml</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id nil?'>nil?</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='lparen'>(</span><span class='kw'>defined?</span><span class='lparen'>(</span><span class='const'>Rails</span><span class='period'>.</span><span class='id root'>root</span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span> <span class='const'>File</span><span class='period'>.</span><span class='id exists?'>exists?</span><span class='lparen'>(</span><span class='const'>File</span><span class='period'>.</span><span class='id join'>join</span><span class='lparen'>(</span><span class='const'>Rails</span><span class='period'>.</span><span class='id root'>root</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>config</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>google_storage.yml</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='rparen'>)</span><span class='rparen'>)</span>
602
+ <span class='id config_path'>config_path</span> <span class='op'>=</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:config_yml</span><span class='rbracket'>]</span> <span class='op'>?</span> <span class='const'>File</span><span class='period'>.</span><span class='id expand_path'>expand_path</span><span class='lparen'>(</span><span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:config_yml</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='const'>File</span><span class='period'>.</span><span class='id join'>join</span><span class='lparen'>(</span><span class='const'>Rails</span><span class='period'>.</span><span class='id root'>root</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>config</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>google_storage.yml</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
603
+ <span class='kw'>end</span>
604
+
605
+ <span class='id raise'>raise</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> \nCan't find a google_storage.yml file to initialise with..
606
+ \nIf running inside a Rails Application
607
+ Please run: rails generate google_storage:install
608
+ To generate a google_storage.yml file in your config directory
609
+ \nIf running manually within a script or whatever
610
+ Initialise GoogleStorage with a path to your config yml file
611
+ Example: GoogleStorage::Client.new(:config_yml =&gt; 'path to your google storage yml')
612
+ \nIf running a rake task try passing: path='path to your google storage yml'
613
+ </span><span class='tstring_content'>\n\n</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>unless</span> <span class='id config_path'>config_path</span> <span class='op'>&amp;&amp;</span> <span class='const'>File</span><span class='period'>.</span><span class='id exists?'>exists?</span><span class='lparen'>(</span><span class='id config_path'>config_path</span><span class='rparen'>)</span>
614
+
615
+ <span class='id config_yml'>config_yml</span> <span class='op'>=</span> <span class='const'>YAML</span><span class='op'>::</span><span class='id load'>load</span><span class='lparen'>(</span><span class='const'>File</span><span class='period'>.</span><span class='id open'>open</span><span class='lparen'>(</span><span class='id config_path'>config_path</span><span class='rparen'>)</span><span class='rparen'>)</span>
616
+
617
+ <span class='ivar'>@project_id</span> <span class='op'>=</span> <span class='id config_yml'>config_yml</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>google_config</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>x-goog-project-id</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
618
+
619
+ <span class='ivar'>@client_id</span> <span class='op'>=</span> <span class='id config_yml'>config_yml</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>web_applications</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>client_id</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
620
+ <span class='ivar'>@client_secret</span> <span class='op'>=</span> <span class='id config_yml'>config_yml</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>web_applications</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>client_secret</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
621
+ <span class='ivar'>@client_secret</span><span class='period'>.</span><span class='id force_encoding'>force_encoding</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>UTF-8</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
622
+ <span class='ivar'>@refresh_token</span> <span class='op'>=</span> <span class='id config_yml'>config_yml</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>refresh_token</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id config_yml'>config_yml</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>refresh_token</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
623
+
624
+ <span class='comment'>#TODO Add support for individual permission types
625
+ </span> <span class='kw'>if</span> <span class='id config_yml'>config_yml</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>google_storage_ids</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
626
+ <span class='ivar'>@gsid_you</span> <span class='op'>=</span> <span class='id config_yml'>config_yml</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>google_storage_ids</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>you</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id config_yml'>config_yml</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>google_storage_ids</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>you</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
627
+ <span class='ivar'>@gsid_owners</span> <span class='op'>=</span> <span class='id config_yml'>config_yml</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>google_storage_ids</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>owners</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id config_yml'>config_yml</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>google_storage_ids</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>owners</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
628
+ <span class='ivar'>@gsid_editors</span> <span class='op'>=</span> <span class='id config_yml'>config_yml</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>google_storage_ids</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>editors</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id config_yml'>config_yml</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>google_storage_ids</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>editors</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
629
+ <span class='ivar'>@gsid_team</span> <span class='op'>=</span> <span class='id config_yml'>config_yml</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>google_storage_ids</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>team</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id config_yml'>config_yml</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>google_storage_ids</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>team</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
630
+ <span class='kw'>end</span>
631
+
632
+ <span class='comment'>#TODO - make redirect_uri's support multiple urls
633
+ </span> <span class='ivar'>@redirect_uri</span> <span class='op'>=</span> <span class='id config_yml'>config_yml</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>web_applications</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>redirect_uris</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
634
+ <span class='comment'>#TODO - maybe add support for API v1 as well... but probably not..
635
+ </span> <span class='ivar'>@api_version</span> <span class='op'>=</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:x_goog_api_version</span><span class='rbracket'>]</span> <span class='op'>?</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:x_goog_api_version</span><span class='rbracket'>]</span> <span class='op'>:</span> <span class='int'>2</span>
636
+ <span class='ivar'>@debug</span> <span class='op'>=</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:debug</span><span class='rbracket'>]</span>
637
+ <span class='ivar'>@timeout</span> <span class='op'>=</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:timeout</span><span class='rbracket'>]</span>
638
+ <span class='ivar'>@host</span> <span class='op'>=</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='op'>?</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>commondatastorage.googleapis.com</span><span class='tstring_end'>'</span></span>
639
+ <span class='kw'>end</span></pre>
640
+ </td>
641
+ </tr>
642
+ </table>
643
+ </div>
644
+
645
+ </div>
646
+
647
+
648
+ <div id="instance_method_details" class="method_details_list">
649
+ <h2>Instance Method Details</h2>
650
+
651
+
652
+ <div class="method_details first">
653
+ <p class="signature first" id="acquire_refresh_token-instance_method">
654
+
655
+ - (<tt>Object</tt>) <strong>acquire_refresh_token</strong>(token, options = {})
656
+
657
+
658
+
659
+ </p><table class="source_code">
660
+ <tr>
661
+ <td>
662
+ <pre class="lines">
663
+
664
+
665
+ 18
666
+ 19
667
+ 20
668
+ 21
669
+ 22
670
+ 23</pre>
671
+ </td>
672
+ <td>
673
+ <pre class="code"><span class="info file"># File 'lib/google_storage/token.rb', line 18</span>
674
+
675
+ <span class='kw'>def</span> <span class='id acquire_refresh_token'>acquire_refresh_token</span><span class='lparen'>(</span><span class='id token'>token</span><span class='comma'>,</span> <span class='id options'>options</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
676
+ <span class='id options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>grant_type</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>authorization_code</span><span class='tstring_end'>'</span></span>
677
+ <span class='id response'>response</span> <span class='op'>=</span> <span class='id post_request'>post_request</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>accounts.google.com</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/o/oauth2/token</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='id token'>token</span><span class='comma'>,</span> <span class='id options'>options</span><span class='rparen'>)</span>
678
+ <span class='kw'>return</span> <span class='id response'>response</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>refresh_token</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id response'>response</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>refresh_token</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
679
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Failed to acquire a refresh token. Something went wrong. Try getting a new Auth code.</span><span class='tstring_end'>&quot;</span></span>
680
+ <span class='kw'>end</span></pre>
681
+ </td>
682
+ </tr>
683
+ </table>
684
+ </div>
685
+
686
+ <div class="method_details ">
687
+ <p class="signature " id="authorization_url-instance_method">
688
+
689
+ - (<tt>Object</tt>) <strong>authorization_url</strong>(scope)
690
+
691
+
692
+
693
+ </p><table class="source_code">
694
+ <tr>
695
+ <td>
696
+ <pre class="lines">
697
+
698
+
699
+ 4
700
+ 5
701
+ 6
702
+ 7
703
+ 8
704
+ 9
705
+ 10
706
+ 11
707
+ 12
708
+ 13
709
+ 14
710
+ 15
711
+ 16</pre>
712
+ </td>
713
+ <td>
714
+ <pre class="code"><span class="info file"># File 'lib/google_storage/token.rb', line 4</span>
715
+
716
+ <span class='kw'>def</span> <span class='id authorization_url'>authorization_url</span><span class='lparen'>(</span><span class='id scope'>scope</span><span class='rparen'>)</span>
717
+ <span class='id scope_url'>scope_url</span> <span class='op'>=</span> <span class='kw'>case</span> <span class='id scope'>scope</span>
718
+ <span class='kw'>when</span> <span class='symbol'>:read_only</span>
719
+ <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>https://www.googleapis.com/auth/devstorage.read_only</span><span class='tstring_end'>'</span></span>
720
+ <span class='kw'>when</span> <span class='symbol'>:read_write</span>
721
+ <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>https://www.googleapis.com/auth/devstorage.read_write</span><span class='tstring_end'>'</span></span>
722
+ <span class='kw'>when</span> <span class='symbol'>:full_control</span>
723
+ <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>https://www.googleapis.com/auth/devstorage.full_control</span><span class='tstring_end'>'</span></span>
724
+ <span class='kw'>else</span>
725
+ <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>https://www.google.com/m8/feeds/</span><span class='tstring_end'>'</span></span>
726
+ <span class='kw'>end</span>
727
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>https://accounts.google.com/o/oauth2/auth?client_id=</span><span class='embexpr_beg'>#{</span><span class='ivar'>@client_id</span><span class='rbrace'>}</span><span class='tstring_content'>&amp;redirect_uri=</span><span class='embexpr_beg'>#{</span><span class='ivar'>@redirect_uri</span><span class='rbrace'>}</span><span class='tstring_content'>&amp;scope=</span><span class='embexpr_beg'>#{</span><span class='id scope_url'>scope_url</span><span class='rbrace'>}</span><span class='tstring_content'>&amp;response_type=code</span><span class='tstring_end'>&quot;</span></span>
728
+ <span class='kw'>end</span></pre>
729
+ </td>
730
+ </tr>
731
+ </table>
732
+ </div>
733
+
734
+ <div class="method_details ">
735
+ <p class="signature " id="bucket_acls-instance_method">
736
+
737
+ - (<tt>Object</tt>) <strong>bucket_acls</strong>(bucket_name, options = {})
738
+
739
+
740
+
741
+ </p><div class="docstring">
742
+ <div class="discussion">
743
+ <p>
744
+ <b>Lists the ACL that has been applied to a bucket</b>
745
+ </p>
746
+ <p>
747
+ Google Ref: <a
748
+ href="http://code.google.com/apis/storage/docs/reference-methods.html#getbucket">code.google.com/apis/storage/docs/reference-methods.html#getbucket</a>
749
+ </p>
750
+ <p>
751
+ Example:
752
+ </p>
753
+ <pre class="code">
754
+ <span class='id client'>client</span><span class='period'>.</span><span class='id bucket_acls'>bucket_acls</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>bucket_name</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></pre>
755
+
756
+
757
+ </div>
758
+ </div>
759
+ <div class="tags">
760
+
761
+ </div><table class="source_code">
762
+ <tr>
763
+ <td>
764
+ <pre class="lines">
765
+
766
+
767
+ 39
768
+ 40
769
+ 41
770
+ 42
771
+ 43
772
+ 44
773
+ 45
774
+ 46
775
+ 47
776
+ 48
777
+ 49
778
+ 50</pre>
779
+ </td>
780
+ <td>
781
+ <pre class="code"><span class="info file"># File 'lib/google_storage/bucket.rb', line 39</span>
782
+
783
+ <span class='kw'>def</span> <span class='id bucket_acls'>bucket_acls</span><span class='lparen'>(</span><span class='id bucket_name'>bucket_name</span><span class='comma'>,</span> <span class='id options'>options</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
784
+ <span class='id resp'>resp</span> <span class='op'>=</span> <span class='id get'>get</span><span class='lparen'>(</span><span class='id bucket_name'>bucket_name</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/?acl</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='id options'>options</span><span class='rparen'>)</span>
785
+ <span class='id resp_obj'>resp_obj</span> <span class='op'>=</span> <span class='const'>Crack</span><span class='op'>::</span><span class='const'>XML</span><span class='period'>.</span><span class='id parse'>parse</span><span class='lparen'>(</span><span class='id resp'>resp</span><span class='period'>.</span><span class='id body'>body</span><span class='rparen'>)</span>
786
+ <span class='kw'>if</span> <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>AccessControlList</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
787
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:success</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>true</span>
788
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:bucket_name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id bucket_name'>bucket_name</span>
789
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:acl</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>AccessControlList</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
790
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:raw</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'>Crack</span><span class='op'>::</span><span class='const'>XML</span><span class='period'>.</span><span class='id parse'>parse</span><span class='lparen'>(</span><span class='id resp'>resp</span><span class='period'>.</span><span class='id body'>body</span><span class='rparen'>)</span>
791
+ <span class='id resp_obj'>resp_obj</span><span class='period'>.</span><span class='id each_key'>each_key</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id key'>key</span><span class='op'>|</span> <span class='id resp_obj'>resp_obj</span><span class='period'>.</span><span class='id delete'>delete</span><span class='lparen'>(</span><span class='id key'>key</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id key'>key</span> <span class='op'>==</span> <span class='symbol'>:success</span> <span class='op'>||</span> <span class='id key'>key</span> <span class='op'>==</span> <span class='symbol'>:bucket_name</span> <span class='op'>||</span> <span class='id key'>key</span> <span class='op'>==</span> <span class='symbol'>:acl</span> <span class='op'>||</span> <span class='id key'>key</span> <span class='op'>==</span> <span class='symbol'>:raw</span> <span class='rbrace'>}</span>
792
+ <span class='kw'>end</span>
793
+ <span class='kw'>return</span> <span class='id resp_obj'>resp_obj</span>
794
+ <span class='kw'>end</span></pre>
795
+ </td>
796
+ </tr>
797
+ </table>
798
+ </div>
799
+
800
+ <div class="method_details ">
801
+ <p class="signature " id="create_bucket-instance_method">
802
+
803
+ - (<tt>Object</tt>) <strong>create_bucket</strong>(bucket_name, options = {})
804
+
805
+
806
+
807
+ </p><div class="docstring">
808
+ <div class="discussion">
809
+ <p>
810
+ <b>Creates a new bucket for your project and applies the
811
+ &#8216;project-private&#8217; ACL by default</b>
812
+ </p>
813
+ <p>
814
+ Google Ref: <a
815
+ href="http://code.google.com/apis/storage/docs/reference-methods.html#putbucket">code.google.com/apis/storage/docs/reference-methods.html#putbucket</a>
816
+ </p>
817
+ <p>
818
+ You can apply a different ACL to a bucket by passing in an :x_goog_acl
819
+ option and applying one of the predefined ACL&#8217;s
820
+ </p>
821
+ <p>
822
+ Example:
823
+ </p>
824
+ <pre class="code">
825
+ client.create_bucket('bucket_name') &lt;-- private bucket
826
+ client.create_bucket('bucket_name', :x_goog_acl =&gt; 'public-read') &lt;-- public readable bucket
827
+ </pre>
828
+ <p>
829
+ Available Options:
830
+ </p>
831
+ <pre class="code">
832
+ :x_goog_acl =&gt; 'public-read'</pre>
833
+
834
+
835
+ </div>
836
+ </div>
837
+ <div class="tags">
838
+
839
+ </div><table class="source_code">
840
+ <tr>
841
+ <td>
842
+ <pre class="lines">
843
+
844
+
845
+ 71
846
+ 72
847
+ 73
848
+ 74
849
+ 75
850
+ 76
851
+ 77
852
+ 78
853
+ 79
854
+ 80
855
+ 81
856
+ 82</pre>
857
+ </td>
858
+ <td>
859
+ <pre class="code"><span class="info file"># File 'lib/google_storage/bucket.rb', line 71</span>
860
+
861
+ <span class='kw'>def</span> <span class='id create_bucket'>create_bucket</span><span class='lparen'>(</span><span class='id bucket_name'>bucket_name</span><span class='comma'>,</span> <span class='id options'>options</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
862
+ <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:send_goog_project_id</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>true</span>
863
+ <span class='id resp'>resp</span> <span class='op'>=</span> <span class='id put'>put</span><span class='lparen'>(</span><span class='id bucket_name'>bucket_name</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='id options'>options</span><span class='rparen'>)</span>
864
+ <span class='id resp_obj'>resp_obj</span> <span class='op'>=</span> <span class='const'>Crack</span><span class='op'>::</span><span class='const'>XML</span><span class='period'>.</span><span class='id parse'>parse</span><span class='lparen'>(</span><span class='id resp'>resp</span><span class='period'>.</span><span class='id body'>body</span><span class='rparen'>)</span>
865
+ <span class='kw'>if</span> <span class='id resp'>resp</span><span class='period'>.</span><span class='id code'>code</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>200</span><span class='tstring_end'>&quot;</span></span>
866
+ <span class='id resp_obj'>resp_obj</span><span class='period'>.</span><span class='id clear'>clear</span>
867
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:success</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>true</span>
868
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:bucket_name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id bucket_name'>bucket_name</span>
869
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:message</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Bucket created</span><span class='tstring_end'>&quot;</span></span>
870
+ <span class='kw'>end</span>
871
+ <span class='kw'>return</span> <span class='id resp_obj'>resp_obj</span>
872
+ <span class='kw'>end</span></pre>
873
+ </td>
874
+ </tr>
875
+ </table>
876
+ </div>
877
+
878
+ <div class="method_details ">
879
+ <p class="signature " id="delete_bucket-instance_method">
880
+
881
+ - (<tt>Object</tt>) <strong>delete_bucket</strong>(bucket_name, options = {})
882
+
883
+
884
+
885
+ </p><div class="docstring">
886
+ <div class="discussion">
887
+ <p>
888
+ <b>Deletes a specified bucket from your project</b>
889
+ </p>
890
+ <p>
891
+ Google Ref: <a
892
+ href="http://code.google.com/apis/storage/docs/reference-methods.html#deletebucket">code.google.com/apis/storage/docs/reference-methods.html#deletebucket</a>
893
+ </p>
894
+ <p>
895
+ <b>Note:</b> You can only delete an empty bucket
896
+ </p>
897
+ <p>
898
+ Example:
899
+ </p>
900
+ <pre class="code">
901
+ <span class='id client'>client</span><span class='period'>.</span><span class='id delete_bucket'>delete_bucket</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>bucket_name</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></pre>
902
+
903
+
904
+ </div>
905
+ </div>
906
+ <div class="tags">
907
+
908
+ </div><table class="source_code">
909
+ <tr>
910
+ <td>
911
+ <pre class="lines">
912
+
913
+
914
+ 127
915
+ 128
916
+ 129
917
+ 130
918
+ 131
919
+ 132
920
+ 133
921
+ 134
922
+ 135</pre>
923
+ </td>
924
+ <td>
925
+ <pre class="code"><span class="info file"># File 'lib/google_storage/bucket.rb', line 127</span>
926
+
927
+ <span class='kw'>def</span> <span class='id delete_bucket'>delete_bucket</span><span class='lparen'>(</span><span class='id bucket_name'>bucket_name</span><span class='comma'>,</span> <span class='id options'>options</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
928
+ <span class='id resp'>resp</span> <span class='op'>=</span> <span class='id delete'>delete</span><span class='lparen'>(</span><span class='id bucket_name'>bucket_name</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='id options'>options</span><span class='rparen'>)</span>
929
+ <span class='kw'>return</span> <span class='const'>Crack</span><span class='op'>::</span><span class='const'>XML</span><span class='period'>.</span><span class='id parse'>parse</span><span class='lparen'>(</span><span class='id resp'>resp</span><span class='period'>.</span><span class='id body'>body</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id resp'>resp</span><span class='period'>.</span><span class='id code'>code</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>204</span><span class='tstring_end'>&quot;</span></span>
930
+ <span class='id resp_obj'>resp_obj</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
931
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:success</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>true</span>
932
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:bucket_name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id bucket_name'>bucket_name</span>
933
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:message</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Bucket deleted</span><span class='tstring_end'>&quot;</span></span>
934
+ <span class='kw'>return</span> <span class='id resp_obj'>resp_obj</span>
935
+ <span class='kw'>end</span></pre>
936
+ </td>
937
+ </tr>
938
+ </table>
939
+ </div>
940
+
941
+ <div class="method_details ">
942
+ <p class="signature " id="delete_object-instance_method">
943
+
944
+ - (<tt>Object</tt>) <strong>delete_object</strong>(bucket_name, filename, options = {})
945
+
946
+
947
+
948
+ </p><div class="docstring">
949
+ <div class="discussion">
950
+ <p>
951
+ <b>Deletes an Object from your bucket</b>
952
+ </p>
953
+ <p>
954
+ Google Ref: <a
955
+ href="http://code.google.com/apis/storage/docs/reference-methods.html#deleteobject">code.google.com/apis/storage/docs/reference-methods.html#deleteobject</a>
956
+ </p>
957
+ <p>
958
+ Example:
959
+ </p>
960
+ <pre class="code">
961
+ <span class='id client'>client</span><span class='period'>.</span><span class='id delete_object'>delete_object</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>bucket_name</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>file.jpg</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></pre>
962
+
963
+
964
+ </div>
965
+ </div>
966
+ <div class="tags">
967
+
968
+ </div><table class="source_code">
969
+ <tr>
970
+ <td>
971
+ <pre class="lines">
972
+
973
+
974
+ 172
975
+ 173
976
+ 174
977
+ 175
978
+ 176
979
+ 177
980
+ 178
981
+ 179
982
+ 180</pre>
983
+ </td>
984
+ <td>
985
+ <pre class="code"><span class="info file"># File 'lib/google_storage/object.rb', line 172</span>
986
+
987
+ <span class='kw'>def</span> <span class='id delete_object'>delete_object</span><span class='lparen'>(</span><span class='id bucket_name'>bucket_name</span><span class='comma'>,</span> <span class='id filename'>filename</span><span class='comma'>,</span> <span class='id options'>options</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
988
+ <span class='id filename'>filename</span><span class='period'>.</span><span class='id gsub!'>gsub!</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^\/</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
989
+ <span class='id resp'>resp</span> <span class='op'>=</span> <span class='id delete'>delete</span><span class='lparen'>(</span><span class='id bucket_name'>bucket_name</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id filename'>filename</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id options'>options</span><span class='rparen'>)</span>
990
+ <span class='kw'>return</span> <span class='const'>Crack</span><span class='op'>::</span><span class='const'>XML</span><span class='period'>.</span><span class='id parse'>parse</span><span class='lparen'>(</span><span class='id resp'>resp</span><span class='period'>.</span><span class='id body'>body</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id resp'>resp</span><span class='period'>.</span><span class='id code'>code</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>204</span><span class='tstring_end'>&quot;</span></span>
991
+ <span class='id resp_obj'>resp_obj</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
992
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:success</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>true</span>
993
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:message</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Object deleted successfully</span><span class='tstring_end'>&quot;</span></span>
994
+ <span class='kw'>return</span> <span class='id resp_obj'>resp_obj</span>
995
+ <span class='kw'>end</span></pre>
996
+ </td>
997
+ </tr>
998
+ </table>
999
+ </div>
1000
+
1001
+ <div class="method_details ">
1002
+ <p class="signature " id="get_bucket-instance_method">
1003
+
1004
+ - (<tt>Object</tt>) <strong>get_bucket</strong>(bucket_name, options = {})
1005
+
1006
+
1007
+
1008
+ </p><div class="docstring">
1009
+ <div class="discussion">
1010
+ <p>
1011
+ <b>Returns a list of all Objects within a specified bucket</b>
1012
+ </p>
1013
+ <p>
1014
+ Google Ref: <a
1015
+ href="http://code.google.com/apis/storage/docs/reference-methods.html#getbucket">code.google.com/apis/storage/docs/reference-methods.html#getbucket</a>
1016
+ </p>
1017
+ <p>
1018
+ Example:
1019
+ </p>
1020
+ <pre class="code">
1021
+ <span class='id client'>client</span><span class='period'>.</span><span class='id get_bucket'>get_bucket</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>bucket_name</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></pre>
1022
+
1023
+
1024
+ </div>
1025
+ </div>
1026
+ <div class="tags">
1027
+
1028
+ </div><table class="source_code">
1029
+ <tr>
1030
+ <td>
1031
+ <pre class="lines">
1032
+
1033
+
1034
+ 96
1035
+ 97
1036
+ 98
1037
+ 99
1038
+ 100
1039
+ 101
1040
+ 102
1041
+ 103
1042
+ 104
1043
+ 105
1044
+ 106
1045
+ 107
1046
+ 108
1047
+ 109
1048
+ 110
1049
+ 111</pre>
1050
+ </td>
1051
+ <td>
1052
+ <pre class="code"><span class="info file"># File 'lib/google_storage/bucket.rb', line 96</span>
1053
+
1054
+ <span class='kw'>def</span> <span class='id get_bucket'>get_bucket</span><span class='lparen'>(</span><span class='id bucket_name'>bucket_name</span><span class='comma'>,</span> <span class='id options'>options</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
1055
+ <span class='id resp'>resp</span> <span class='op'>=</span> <span class='id get'>get</span><span class='lparen'>(</span><span class='id bucket_name'>bucket_name</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='id options'>options</span><span class='rparen'>)</span>
1056
+ <span class='id resp_obj'>resp_obj</span> <span class='op'>=</span> <span class='const'>Crack</span><span class='op'>::</span><span class='const'>XML</span><span class='period'>.</span><span class='id parse'>parse</span><span class='lparen'>(</span><span class='id resp'>resp</span><span class='period'>.</span><span class='id body'>body</span><span class='rparen'>)</span>
1057
+ <span class='kw'>if</span> <span class='id resp'>resp</span><span class='period'>.</span><span class='id code'>code</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>200</span><span class='tstring_end'>&quot;</span></span>
1058
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:success</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>true</span>
1059
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:bucket_name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id bucket_name'>bucket_name</span>
1060
+ <span class='id contents'>contents</span> <span class='op'>=</span> <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>ListBucketResult</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Contents</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>?</span> <span class='const'>Array</span><span class='period'>.</span><span class='id new'>new</span> <span class='op'>:</span> <span class='kw'>nil</span>
1061
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>ListBucketResult</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Contents</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Array</span><span class='rparen'>)</span> <span class='op'>?</span> \
1062
+ <span class='lparen'>(</span><span class='id contents'>contents</span> <span class='op'>=</span> <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>ListBucketResult</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Contents</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='op'>:</span> \
1063
+ <span class='lparen'>(</span><span class='id contents'>contents</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>ListBucketResult</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Contents</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id contents'>contents</span><span class='period'>.</span><span class='id nil?'>nil?</span>
1064
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:contents</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id contents'>contents</span>
1065
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:raw</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'>Crack</span><span class='op'>::</span><span class='const'>XML</span><span class='period'>.</span><span class='id parse'>parse</span><span class='lparen'>(</span><span class='id resp'>resp</span><span class='period'>.</span><span class='id body'>body</span><span class='rparen'>)</span>
1066
+ <span class='id resp_obj'>resp_obj</span><span class='period'>.</span><span class='id each_key'>each_key</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id key'>key</span><span class='op'>|</span> <span class='id resp_obj'>resp_obj</span><span class='period'>.</span><span class='id delete'>delete</span><span class='lparen'>(</span><span class='id key'>key</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id key'>key</span> <span class='op'>==</span> <span class='symbol'>:success</span> <span class='op'>||</span> <span class='id key'>key</span> <span class='op'>==</span> <span class='symbol'>:bucket_name</span> <span class='op'>||</span> <span class='id key'>key</span> <span class='op'>==</span> <span class='symbol'>:contents</span> <span class='op'>||</span> <span class='id key'>key</span> <span class='op'>==</span> <span class='symbol'>:raw</span> <span class='rbrace'>}</span>
1067
+ <span class='kw'>end</span>
1068
+ <span class='kw'>return</span> <span class='id resp_obj'>resp_obj</span>
1069
+ <span class='kw'>end</span></pre>
1070
+ </td>
1071
+ </tr>
1072
+ </table>
1073
+ </div>
1074
+
1075
+ <div class="method_details ">
1076
+ <p class="signature " id="get_object-instance_method">
1077
+
1078
+ - (<tt>Object</tt>) <strong>get_object</strong>(bucket_name, filename, options = {})
1079
+
1080
+
1081
+
1082
+ </p><div class="docstring">
1083
+ <div class="discussion">
1084
+ <p>
1085
+ <b>Returns a Google Storage Object inside of a Hash</b>
1086
+ </p>
1087
+ <p>
1088
+ Google Ref: <a
1089
+ href="http://code.google.com/apis/storage/docs/reference-methods.html#getobject">code.google.com/apis/storage/docs/reference-methods.html#getobject</a>
1090
+ </p>
1091
+ <p>
1092
+ Example:
1093
+ </p>
1094
+ <pre class="code">
1095
+ <span class='const'>Returns</span> <span class='id a'>a</span> <span class='const'>Hash</span> <span class='id containing'>containing</span> <span class='id your'>your</span> <span class='id object'>object</span>
1096
+ <span class='id client'>client</span><span class='period'>.</span><span class='id get_object'>get_object</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>bucket_name</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>example_image.jpg</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
1097
+
1098
+ <span class='const'>Or</span> <span class='id write'>write</span> <span class='id the'>the</span> <span class='id file'>file</span> <span class='id directly'>directly</span> <span class='id to'>to</span> <span class='id your'>your</span> <span class='id file'>file</span> <span class='id system'>system</span>
1099
+ <span class='id client'>client</span><span class='period'>.</span><span class='id get_object'>get_object</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>bucket_name</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>example_image.jpg</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='symbol'>:write_to_file</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>C:/example/file.jpg</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></pre>
1100
+
1101
+
1102
+ </div>
1103
+ </div>
1104
+ <div class="tags">
1105
+
1106
+ </div><table class="source_code">
1107
+ <tr>
1108
+ <td>
1109
+ <pre class="lines">
1110
+
1111
+
1112
+ 23
1113
+ 24
1114
+ 25
1115
+ 26
1116
+ 27
1117
+ 28
1118
+ 29
1119
+ 30
1120
+ 31
1121
+ 32
1122
+ 33
1123
+ 34
1124
+ 35
1125
+ 36
1126
+ 37
1127
+ 38
1128
+ 39
1129
+ 40
1130
+ 41
1131
+ 42
1132
+ 43
1133
+ 44
1134
+ 45
1135
+ 46
1136
+ 47</pre>
1137
+ </td>
1138
+ <td>
1139
+ <pre class="code"><span class="info file"># File 'lib/google_storage/object.rb', line 23</span>
1140
+
1141
+ <span class='kw'>def</span> <span class='id get_object'>get_object</span><span class='lparen'>(</span><span class='id bucket_name'>bucket_name</span><span class='comma'>,</span> <span class='id filename'>filename</span><span class='comma'>,</span> <span class='id options'>options</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
1142
+ <span class='id filename'>filename</span><span class='period'>.</span><span class='id gsub!'>gsub!</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^\/</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1143
+ <span class='id resp'>resp</span> <span class='op'>=</span> <span class='id get'>get</span><span class='lparen'>(</span><span class='id bucket_name'>bucket_name</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id filename'>filename</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id options'>options</span><span class='rparen'>)</span>
1144
+ <span class='kw'>return</span> <span class='const'>Crack</span><span class='op'>::</span><span class='const'>XML</span><span class='period'>.</span><span class='id parse'>parse</span><span class='lparen'>(</span><span class='id resp'>resp</span><span class='period'>.</span><span class='id body'>body</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id resp'>resp</span><span class='period'>.</span><span class='id code'>code</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>200</span><span class='tstring_end'>&quot;</span></span>
1145
+ <span class='id resp_obj'>resp_obj</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
1146
+ <span class='kw'>if</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:write_to_file</span><span class='rbracket'>]</span>
1147
+ <span class='kw'>begin</span>
1148
+ <span class='const'>File</span><span class='period'>.</span><span class='id open'>open</span><span class='lparen'>(</span><span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:write_to_file</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>wb</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id f'>f</span><span class='op'>|</span> <span class='id f'>f</span><span class='period'>.</span><span class='id write'>write</span><span class='lparen'>(</span><span class='id resp'>resp</span><span class='period'>.</span><span class='id body'>body</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
1149
+ <span class='kw'>rescue</span> <span class='const'>Exception</span> <span class='op'>=&gt;</span> <span class='id msg'>msg</span>
1150
+ <span class='kw'>return</span> <span class='lbrace'>{</span><span class='symbol'>:error</span> <span class='op'>=&gt;</span> <span class='id msg'>msg</span><span class='rbrace'>}</span>
1151
+ <span class='kw'>end</span>
1152
+ <span class='id resp_obj'>resp_obj</span><span class='period'>.</span><span class='id clear'>clear</span>
1153
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:success</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>true</span>
1154
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:message</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>File created</span><span class='tstring_end'>&quot;</span></span>
1155
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:path_to_file</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:write_to_file</span><span class='rbracket'>]</span>
1156
+ <span class='kw'>return</span> <span class='id resp_obj'>resp_obj</span>
1157
+ <span class='kw'>end</span>
1158
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:success</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>true</span>
1159
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:filename</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id filename'>filename</span>
1160
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:body</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id resp'>resp</span><span class='period'>.</span><span class='id body'>body</span>
1161
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:type</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id resp'>resp</span><span class='period'>.</span><span class='id header'>header</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>content-type</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
1162
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:size</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id resp'>resp</span><span class='period'>.</span><span class='id header'>header</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>content-length</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
1163
+
1164
+ <span class='kw'>return</span> <span class='id resp_obj'>resp_obj</span>
1165
+ <span class='kw'>end</span></pre>
1166
+ </td>
1167
+ </tr>
1168
+ </table>
1169
+ </div>
1170
+
1171
+ <div class="method_details ">
1172
+ <p class="signature " id="list_buckets-instance_method">
1173
+
1174
+ - (<tt>Object</tt>) <strong>list_buckets</strong>
1175
+
1176
+
1177
+
1178
+ </p><div class="docstring">
1179
+ <div class="discussion">
1180
+ <p>
1181
+ <b>Lists all buckets available within your project</b>
1182
+ </p>
1183
+ <p>
1184
+ Google Ref: <a
1185
+ href="http://code.google.com/apis/storage/docs/reference-methods.html#getservice">code.google.com/apis/storage/docs/reference-methods.html#getservice</a>
1186
+ </p>
1187
+
1188
+
1189
+ </div>
1190
+ </div>
1191
+ <div class="tags">
1192
+
1193
+ </div><table class="source_code">
1194
+ <tr>
1195
+ <td>
1196
+ <pre class="lines">
1197
+
1198
+
1199
+ 13
1200
+ 14
1201
+ 15
1202
+ 16
1203
+ 17
1204
+ 18
1205
+ 19
1206
+ 20
1207
+ 21
1208
+ 22
1209
+ 23
1210
+ 24
1211
+ 25</pre>
1212
+ </td>
1213
+ <td>
1214
+ <pre class="code"><span class="info file"># File 'lib/google_storage/bucket.rb', line 13</span>
1215
+
1216
+ <span class='kw'>def</span> <span class='id list_buckets'>list_buckets</span>
1217
+ <span class='id options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
1218
+ <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:send_goog_project_id</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>true</span>
1219
+ <span class='id resp'>resp</span> <span class='op'>=</span> <span class='id get'>get</span><span class='lparen'>(</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='id options'>options</span><span class='rparen'>)</span>
1220
+ <span class='id resp_obj'>resp_obj</span> <span class='op'>=</span> <span class='const'>Crack</span><span class='op'>::</span><span class='const'>XML</span><span class='period'>.</span><span class='id parse'>parse</span><span class='lparen'>(</span><span class='id resp'>resp</span><span class='period'>.</span><span class='id body'>body</span><span class='rparen'>)</span>
1221
+ <span class='kw'>if</span> <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>ListAllMyBucketsResult</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
1222
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:success</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>true</span>
1223
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:buckets</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>ListAllMyBucketsResult</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Buckets</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Bucket</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
1224
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:raw</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'>Crack</span><span class='op'>::</span><span class='const'>XML</span><span class='period'>.</span><span class='id parse'>parse</span><span class='lparen'>(</span><span class='id resp'>resp</span><span class='period'>.</span><span class='id body'>body</span><span class='rparen'>)</span>
1225
+ <span class='id resp_obj'>resp_obj</span><span class='period'>.</span><span class='id each_key'>each_key</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id key'>key</span><span class='op'>|</span> <span class='id resp_obj'>resp_obj</span><span class='period'>.</span><span class='id delete'>delete</span><span class='lparen'>(</span><span class='id key'>key</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id key'>key</span> <span class='op'>==</span> <span class='symbol'>:success</span> <span class='op'>||</span> <span class='id key'>key</span> <span class='op'>==</span> <span class='symbol'>:buckets</span> <span class='op'>||</span> <span class='id key'>key</span> <span class='op'>==</span> <span class='symbol'>:raw</span> <span class='rbrace'>}</span>
1226
+ <span class='kw'>end</span>
1227
+ <span class='kw'>return</span> <span class='id resp_obj'>resp_obj</span>
1228
+ <span class='kw'>end</span></pre>
1229
+ </td>
1230
+ </tr>
1231
+ </table>
1232
+ </div>
1233
+
1234
+ <div class="method_details ">
1235
+ <p class="signature " id="object_acls-instance_method">
1236
+
1237
+ - (<tt>Object</tt>) <strong>object_acls</strong>(bucket_name, filename, options = {})
1238
+
1239
+
1240
+
1241
+ </p><div class="docstring">
1242
+ <div class="discussion">
1243
+ <p>
1244
+ <b>Lists the ACL that has been applied to a particular object</b>
1245
+ </p>
1246
+ <p>
1247
+ Google Ref: <a
1248
+ href="http://code.google.com/apis/storage/docs/reference-methods.html#getobject">code.google.com/apis/storage/docs/reference-methods.html#getobject</a>
1249
+ </p>
1250
+ <p>
1251
+ Example:
1252
+ </p>
1253
+ <pre class="code">
1254
+ <span class='id client'>client</span><span class='period'>.</span><span class='id object_acls'>object_acls</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>bucket_name</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>file.jpg</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></pre>
1255
+
1256
+
1257
+ </div>
1258
+ </div>
1259
+ <div class="tags">
1260
+
1261
+ </div><table class="source_code">
1262
+ <tr>
1263
+ <td>
1264
+ <pre class="lines">
1265
+
1266
+
1267
+ 118
1268
+ 119
1269
+ 120
1270
+ 121
1271
+ 122
1272
+ 123
1273
+ 124
1274
+ 125
1275
+ 126
1276
+ 127
1277
+ 128
1278
+ 129
1279
+ 130</pre>
1280
+ </td>
1281
+ <td>
1282
+ <pre class="code"><span class="info file"># File 'lib/google_storage/object.rb', line 118</span>
1283
+
1284
+ <span class='kw'>def</span> <span class='id object_acls'>object_acls</span><span class='lparen'>(</span><span class='id bucket_name'>bucket_name</span><span class='comma'>,</span> <span class='id filename'>filename</span><span class='comma'>,</span> <span class='id options'>options</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
1285
+ <span class='id filename'>filename</span><span class='period'>.</span><span class='id gsub!'>gsub!</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^\/</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1286
+ <span class='id resp'>resp</span> <span class='op'>=</span> <span class='id get'>get</span><span class='lparen'>(</span><span class='id bucket_name'>bucket_name</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id filename'>filename</span><span class='rbrace'>}</span><span class='tstring_content'>?acl</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id options'>options</span><span class='rparen'>)</span>
1287
+ <span class='id resp_obj'>resp_obj</span> <span class='op'>=</span> <span class='const'>Crack</span><span class='op'>::</span><span class='const'>XML</span><span class='period'>.</span><span class='id parse'>parse</span><span class='lparen'>(</span><span class='id resp'>resp</span><span class='period'>.</span><span class='id body'>body</span><span class='rparen'>)</span>
1288
+ <span class='kw'>if</span> <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>AccessControlList</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
1289
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:success</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>true</span>
1290
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:object_name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id filename'>filename</span>
1291
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:acl</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>AccessControlList</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
1292
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:raw</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'>Crack</span><span class='op'>::</span><span class='const'>XML</span><span class='period'>.</span><span class='id parse'>parse</span><span class='lparen'>(</span><span class='id resp'>resp</span><span class='period'>.</span><span class='id body'>body</span><span class='rparen'>)</span>
1293
+ <span class='id resp_obj'>resp_obj</span><span class='period'>.</span><span class='id each_key'>each_key</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id key'>key</span><span class='op'>|</span> <span class='id resp_obj'>resp_obj</span><span class='period'>.</span><span class='id delete'>delete</span><span class='lparen'>(</span><span class='id key'>key</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id key'>key</span> <span class='op'>==</span> <span class='symbol'>:success</span> <span class='op'>||</span> <span class='id key'>key</span> <span class='op'>==</span> <span class='symbol'>:object_name</span> <span class='op'>||</span> <span class='id key'>key</span> <span class='op'>==</span> <span class='symbol'>:acl</span> <span class='op'>||</span> <span class='id key'>key</span> <span class='op'>==</span> <span class='symbol'>:raw</span> <span class='rbrace'>}</span>
1294
+ <span class='kw'>end</span>
1295
+ <span class='kw'>return</span> <span class='id resp_obj'>resp_obj</span>
1296
+ <span class='kw'>end</span></pre>
1297
+ </td>
1298
+ </tr>
1299
+ </table>
1300
+ </div>
1301
+
1302
+ <div class="method_details ">
1303
+ <p class="signature " id="object_head-instance_method">
1304
+
1305
+ - (<tt>Object</tt>) <strong>object_head</strong>(bucket_name, filename, options = {})
1306
+
1307
+
1308
+
1309
+ </p><div class="docstring">
1310
+ <div class="discussion">
1311
+ <p>
1312
+ <b>Returns the metadata of an Object stored</b>
1313
+ </p>
1314
+ <p>
1315
+ Google Ref: <a
1316
+ href="http://code.google.com/apis/storage/docs/reference-methods.html#headobject">code.google.com/apis/storage/docs/reference-methods.html#headobject</a>
1317
+ </p>
1318
+ <p>
1319
+ Example:
1320
+ </p>
1321
+ <pre class="code">
1322
+ <span class='id client'>client</span><span class='period'>.</span><span class='id object_head'>object_head</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>bucket_name</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>file.jpg</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></pre>
1323
+
1324
+
1325
+ </div>
1326
+ </div>
1327
+ <div class="tags">
1328
+
1329
+ </div><table class="source_code">
1330
+ <tr>
1331
+ <td>
1332
+ <pre class="lines">
1333
+
1334
+
1335
+ 144
1336
+ 145
1337
+ 146
1338
+ 147
1339
+ 148
1340
+ 149
1341
+ 150
1342
+ 151
1343
+ 152
1344
+ 153
1345
+ 154
1346
+ 155
1347
+ 156
1348
+ 157
1349
+ 158</pre>
1350
+ </td>
1351
+ <td>
1352
+ <pre class="code"><span class="info file"># File 'lib/google_storage/object.rb', line 144</span>
1353
+
1354
+ <span class='kw'>def</span> <span class='id object_head'>object_head</span><span class='lparen'>(</span><span class='id bucket_name'>bucket_name</span><span class='comma'>,</span> <span class='id filename'>filename</span><span class='comma'>,</span> <span class='id options'>options</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
1355
+ <span class='id filename'>filename</span><span class='period'>.</span><span class='id gsub!'>gsub!</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^\/</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1356
+ <span class='id resp'>resp</span> <span class='op'>=</span> <span class='id head'>head</span><span class='lparen'>(</span><span class='id bucket_name'>bucket_name</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id filename'>filename</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id options'>options</span><span class='rparen'>)</span>
1357
+ <span class='kw'>return</span> <span class='id resp'>resp</span><span class='period'>.</span><span class='id header'>header</span> <span class='kw'>unless</span> <span class='id resp'>resp</span><span class='period'>.</span><span class='id code'>code</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>200</span><span class='tstring_end'>&quot;</span></span>
1358
+ <span class='id resp_obj'>resp_obj</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
1359
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:success</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>true</span>
1360
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:filename</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id filename'>filename</span>
1361
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:last_modified</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id resp'>resp</span><span class='period'>.</span><span class='id header'>header</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>last-modified</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id resp'>resp</span><span class='period'>.</span><span class='id header'>header</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>last-modified</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
1362
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:etag</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id resp'>resp</span><span class='period'>.</span><span class='id header'>header</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>etag</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id resp'>resp</span><span class='period'>.</span><span class='id header'>header</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>etag</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
1363
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:content_length</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id resp'>resp</span><span class='period'>.</span><span class='id header'>header</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>content-length</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id resp'>resp</span><span class='period'>.</span><span class='id header'>header</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>content-length</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
1364
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:content_type</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id resp'>resp</span><span class='period'>.</span><span class='id header'>header</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>content-type</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id resp'>resp</span><span class='period'>.</span><span class='id header'>header</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>content-type</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
1365
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:cache_control</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id resp'>resp</span><span class='period'>.</span><span class='id header'>header</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>cache-control</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id resp'>resp</span><span class='period'>.</span><span class='id header'>header</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>cache-control</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
1366
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:date</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id resp'>resp</span><span class='period'>.</span><span class='id header'>header</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>date</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id resp'>resp</span><span class='period'>.</span><span class='id header'>header</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>date</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
1367
+ <span class='kw'>return</span> <span class='id resp_obj'>resp_obj</span>
1368
+ <span class='kw'>end</span></pre>
1369
+ </td>
1370
+ </tr>
1371
+ </table>
1372
+ </div>
1373
+
1374
+ <div class="method_details ">
1375
+ <p class="signature " id="put_object-instance_method">
1376
+
1377
+ - (<tt>Object</tt>) <strong>put_object</strong>(bucket_name, filename, options = {})
1378
+
1379
+
1380
+
1381
+ <span class="aliases">Also known as:
1382
+ <span class="names"><span id='upload_object-instance_method'>upload_object</span></span>
1383
+ </span>
1384
+
1385
+ </p><div class="docstring">
1386
+ <div class="discussion">
1387
+ <p>
1388
+ <b>Uploads an Object to Google Storage, or updates if using the same
1389
+ filename</b>
1390
+ </p>
1391
+ <p>
1392
+ If no :x_goog_acl option is supplied, a &#8216;private&#8217; ACL is
1393
+ applied by default
1394
+ </p>
1395
+ <p>
1396
+ Google Ref: <a
1397
+ href="http://code.google.com/apis/storage/docs/reference-methods.html#putobject">code.google.com/apis/storage/docs/reference-methods.html#putobject</a>
1398
+ </p>
1399
+ <p>
1400
+ <b>Note:</b> If no content type is specified then Google defaults to using
1401
+ &#8216;binary/octet-stream&#8217;
1402
+ </p>
1403
+ <p>
1404
+ Example:
1405
+ </p>
1406
+ <pre class="code">
1407
+ <span class='id client'>client</span><span class='period'>.</span><span class='id put_object'>put_object</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>bucket_name</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>file.jpg</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='symbol'>:path_to_file</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>C:/example/file.jpg</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
1408
+ <span class='id client'>client</span><span class='period'>.</span><span class='id put_object'>put_object</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>bucket_name</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>file.jpg</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='symbol'>:data</span> <span class='op'>=&gt;</span> <span class='const'>File</span><span class='period'>.</span><span class='id read'>read</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>C:/example/file.jpg</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='rparen'>)</span>
1409
+ </pre>
1410
+ <p>
1411
+ Available Options:
1412
+ </p>
1413
+ <pre class="code">
1414
+ :x_goog_acl =&gt; 'public-read'
1415
+ :content_type =&gt; 'image/jpeg' &lt;-- It's recommended to always include the content type
1416
+ :path_to_file =&gt; 'path_to_file_you_want_to_upload'
1417
+ :data =&gt; [binary_data]</pre>
1418
+
1419
+
1420
+ </div>
1421
+ </div>
1422
+ <div class="tags">
1423
+
1424
+ </div><table class="source_code">
1425
+ <tr>
1426
+ <td>
1427
+ <pre class="lines">
1428
+
1429
+
1430
+ 74
1431
+ 75
1432
+ 76
1433
+ 77
1434
+ 78
1435
+ 79
1436
+ 80
1437
+ 81
1438
+ 82
1439
+ 83
1440
+ 84
1441
+ 85
1442
+ 86
1443
+ 87
1444
+ 88
1445
+ 89
1446
+ 90
1447
+ 91
1448
+ 92
1449
+ 93
1450
+ 94
1451
+ 95
1452
+ 96
1453
+ 97
1454
+ 98
1455
+ 99
1456
+ 100
1457
+ 101
1458
+ 102</pre>
1459
+ </td>
1460
+ <td>
1461
+ <pre class="code"><span class="info file"># File 'lib/google_storage/object.rb', line 74</span>
1462
+
1463
+ <span class='kw'>def</span> <span class='id put_object'>put_object</span><span class='lparen'>(</span><span class='id bucket_name'>bucket_name</span><span class='comma'>,</span> <span class='id filename'>filename</span><span class='comma'>,</span> <span class='id options'>options</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
1464
+ <span class='id filename'>filename</span><span class='period'>.</span><span class='id gsub!'>gsub!</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^\/</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1465
+ <span class='kw'>if</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:path_to_file</span><span class='rbracket'>]</span>
1466
+ <span class='kw'>begin</span>
1467
+ <span class='id uploaded_file'>uploaded_file</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id open'>open</span><span class='lparen'>(</span><span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:path_to_file</span><span class='rbracket'>]</span><span class='rparen'>)</span>
1468
+ <span class='kw'>if</span> <span class='id uploaded_file'>uploaded_file</span><span class='period'>.</span><span class='id respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='symbol'>:get_input_stream</span><span class='rparen'>)</span>
1469
+ <span class='id uploaded_file'>uploaded_file</span><span class='period'>.</span><span class='id get_input_stream'>get_input_stream</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id io'>io</span><span class='op'>|</span> <span class='ivar'>@data</span> <span class='op'>=</span> <span class='id io'>io</span><span class='period'>.</span><span class='id read'>read</span> <span class='rbrace'>}</span>
1470
+ <span class='kw'>else</span>
1471
+ <span class='id uploaded_file'>uploaded_file</span><span class='period'>.</span><span class='id binmode'>binmode</span>
1472
+ <span class='ivar'>@data</span> <span class='op'>=</span> <span class='id uploaded_file'>uploaded_file</span><span class='period'>.</span><span class='id read'>read</span>
1473
+ <span class='kw'>end</span>
1474
+ <span class='kw'>rescue</span> <span class='const'>Exception</span> <span class='op'>=&gt;</span> <span class='id msg'>msg</span>
1475
+ <span class='kw'>return</span> <span class='lbrace'>{</span><span class='symbol'>:error</span> <span class='op'>=&gt;</span> <span class='id msg'>msg</span><span class='rbrace'>}</span>
1476
+ <span class='kw'>end</span>
1477
+ <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='ivar'>@data</span>
1478
+ <span class='kw'>end</span>
1479
+ <span class='id resp'>resp</span> <span class='op'>=</span> <span class='id put'>put</span><span class='lparen'>(</span><span class='id bucket_name'>bucket_name</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id filename'>filename</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id options'>options</span><span class='rparen'>)</span>
1480
+ <span class='id public_file'>public_file</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:x_goog_acl</span><span class='rbracket'>]</span> <span class='op'>&amp;&amp;</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:x_goog_acl</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id match'>match</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>public</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='rparen'>)</span>
1481
+ <span class='kw'>return</span> <span class='const'>Crack</span><span class='op'>::</span><span class='const'>XML</span><span class='period'>.</span><span class='id parse'>parse</span><span class='lparen'>(</span><span class='id resp'>resp</span><span class='period'>.</span><span class='id body'>body</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id resp'>resp</span><span class='period'>.</span><span class='id code'>code</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>200</span><span class='tstring_end'>&quot;</span></span>
1482
+ <span class='id resp_obj'>resp_obj</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
1483
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:success</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>true</span>
1484
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:message</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Object added successfully</span><span class='tstring_end'>&quot;</span></span>
1485
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:filename</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id filename'>filename</span>
1486
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:content_type</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:content_type</span><span class='rbracket'>]</span> <span class='op'>?</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:content_type</span><span class='rbracket'>]</span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>binary/octet-stream</span><span class='tstring_end'>'</span></span>
1487
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:url</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id public_file'>public_file</span> <span class='op'>?</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>http://</span><span class='embexpr_beg'>#{</span><span class='ivar'>@host</span><span class='rbrace'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id bucket_name'>bucket_name</span><span class='rbrace'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id filename'>filename</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span> <span class='op'>:</span> \
1488
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>https://sandbox.google.com/storage/</span><span class='embexpr_beg'>#{</span><span class='id bucket_name'>bucket_name</span><span class='rbrace'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id filename'>filename</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
1489
+ <span class='id resp_obj'>resp_obj</span><span class='lbracket'>[</span><span class='symbol'>:url_type</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id public_file'>public_file</span> <span class='op'>?</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>public</span><span class='tstring_end'>&quot;</span></span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>private</span><span class='tstring_end'>&quot;</span></span>
1490
+ <span class='kw'>return</span> <span class='id resp_obj'>resp_obj</span>
1491
+ <span class='kw'>end</span></pre>
1492
+ </td>
1493
+ </tr>
1494
+ </table>
1495
+ </div>
1496
+
1497
+ </div>
1498
+
1499
+ </div>
1500
+
1501
+ <div id="footer">
1502
+ Generated on Tue Jun 28 10:28:04 2011 by
1503
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1504
+ 0.7.2 (ruby-1.9.2).
1505
+ </div>
1506
+
1507
+ </body>
1508
+ </html>