asposecloudsdk 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,14 @@
1
+ # This class allows you to set the AppSID and AppKey values you get upon signing up
2
+ module Aspose
3
+ module Cloud
4
+ module Common
5
+ class AsposeApp
6
+ def initialize(app_sid,app_key)
7
+ $app_sid = app_sid
8
+ $app_key = app_key
9
+ $out_put_location = ''
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,17 @@
1
+ # This class allows you to set the base host Aspose URI
2
+ module Aspose
3
+ module Cloud
4
+ module Common
5
+ class Product
6
+ def initialize
7
+
8
+ end
9
+
10
+ # Sets the host product URI
11
+ def self.set_base_product_uri product_uri
12
+ $product_uri = product_uri
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,108 @@
1
+ # This class provides common methods to be repeatedly used by other wrapper classes
2
+ module Aspose
3
+ module Cloud
4
+ module Common
5
+ class Utils
6
+ # Signs a URI with your appSID and Key.
7
+ # * :url describes the URL to sign
8
+
9
+ def self.sign(url)
10
+ url = URI.escape(url)
11
+ parsed_url = URI.parse(url)
12
+
13
+ url_to_sign =''
14
+ if parsed_url.query.nil?
15
+ url_to_sign = parsed_url.scheme+'://' + parsed_url.host + parsed_url.path + '?appSID=' + $app_sid
16
+ else
17
+ url_to_sign = parsed_url.scheme+'://' + parsed_url.host + parsed_url.path + '?' + parsed_url.query + '&appSID=' + $app_sid
18
+ end
19
+
20
+ # create a signature using the private key and the URL
21
+ raw_signature = OpenSSL::HMAC.digest(OpenSSL::Digest::Digest.new('sha1'), $app_key, url_to_sign)
22
+
23
+ #Convert raw to encoded string
24
+ signature = Base64.strict_encode64(raw_signature).tr('+/','-_')
25
+
26
+ #remove invalid character
27
+ signature = signature.gsub(/[=_-]/,'=' => '','_' => '%2f','-' => '%2b')
28
+
29
+ #Define expression
30
+ pat = Regexp.new('%[0-9a-f]{2}')
31
+
32
+ #Replace the portion matched to the above pattern to upper case
33
+ for i in 0..5
34
+ signature = signature.sub(pat,pat.match(signature).to_s.upcase)
35
+ end
36
+
37
+ # prepend the server and append the signature.
38
+ signed_url = url_to_sign + "&signature=#{signature}"
39
+ return signed_url
40
+ end
41
+
42
+ def self.validate_output(result)
43
+
44
+ validate = ['Unknown file format.', 'Unable to read beyond the end of the stream',
45
+ 'Index was out of range', 'Cannot read that as a ZipFile', 'Not a Microsoft PowerPoint 2007 presentation',
46
+ 'Index was outside the bounds of the array', 'An attempt was made to move the position before the beginning of the stream',
47
+ ]
48
+
49
+ invalid = false
50
+
51
+ validate.each do |value|
52
+ if result.index(value) != nil
53
+ invalid = ture
54
+ end
55
+ end
56
+
57
+ if invalid == true
58
+ return result
59
+ else
60
+ return ''
61
+ end
62
+ end
63
+
64
+ # Parses JSON date value to a valid date format
65
+ # * :datestring holds the JSON Date value
66
+ def self.parse_date(date_string)
67
+ seconds_since_epoch = date_string.scan(/[0-9]+/)[0].to_i
68
+ return Time.at((seconds_since_epoch-(21600000 + 18000000))/1000)
69
+ end
70
+
71
+ # Uploads a binary file from the client system
72
+ # * :localfile holds the local file path along with name
73
+ # * :url holds the required url to use while uploading the file to Aspose Storage
74
+ def self.upload_file_binary(localfile,url)
75
+ RestClient.put( url,File.new(localfile, 'rb'))
76
+ end
77
+
78
+ # Gets the count of a particular field in the response
79
+ # * :localfile holds the local file path along with name
80
+ # * :url holds the required url to use while uploading the file to Aspose Storage
81
+ def self.get_field_count(url,field_name)
82
+ response = RestClient.get(url, :accept => 'application/xml')
83
+ doc = REXML::Document.new(response.body)
84
+ pages = []
85
+ doc.elements.each(field_name) do |ele|
86
+ pages << ele.text
87
+ end
88
+ return pages.size
89
+ end
90
+ # Saves the response stream to a local file.
91
+ def self.save_file(response_stream,local_file)
92
+ open(local_file, 'wb') do |file|
93
+ file.write(response_stream.body)
94
+ end
95
+ end
96
+
97
+ def self.get_filename(file)
98
+
99
+ filename = File.basename(file, File.extname(file) );
100
+
101
+ return filename
102
+
103
+ end
104
+
105
+ end
106
+ end
107
+ end
108
+ end
@@ -0,0 +1,128 @@
1
+ module Aspose
2
+ module Cloud
3
+
4
+ module OCR
5
+ class Extractor
6
+ def initialize
7
+
8
+ end
9
+
10
+ def extract_text(*args)
11
+ case args.size
12
+ when 2
13
+ image_file_name,folder = *args
14
+ begin
15
+ str_uri = ''
16
+ if(folder=='' || folder==nil)
17
+ str_uri += $product_uri + '/ocr/' + image_file_name.to_s + '/recognize'
18
+ else
19
+ str_uri += $product_uri + '/ocr/' + image_file_name.to_s + '/recognize?folder=' + folder.to_s
20
+ end
21
+
22
+ signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
23
+
24
+ response = RestClient.get(signed_uri, :accept=> 'application/json')
25
+ json = JSON.parse(response)
26
+ return json
27
+ rescue Exception=>e
28
+ print e
29
+ return nil
30
+ end
31
+ when 4
32
+ image_file_name,folder,language,use_default_dictionaries = *args
33
+ begin
34
+ str_uri = ''
35
+ if(folder=='' || folder==nil)
36
+ str_uri += $product_uri + '/ocr/' + image_file_name.to_s + '/recognize?language=' + language.to_s + '&useDefaultDictionaries=' + use_default_dictionaries.to_s
37
+ else
38
+ str_uri += $product_uri + '/ocr/' + image_file_name.to_s + '/recognize?language=' + language.to_s + '&useDefaultDictionaries=' + use_default_dictionaries.to_s + '&folder=' + folder.to_s
39
+ end
40
+
41
+ signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
42
+
43
+ response = RestClient.get(signed_uri, :accept=> 'application/json')
44
+ json = JSON.parse(response)
45
+ return json
46
+ rescue Exception=>e
47
+ print e
48
+ return nil
49
+ end
50
+ when 1
51
+ image_file_name = args[0]
52
+ begin
53
+ str_uri = $product_uri + '/ocr/' + image_file_name + '/recognize?useDefaultDictionaries=true'
54
+ signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
55
+ response = RestClient.get(signed_uri, :accept=> 'application/json')
56
+ json = JSON.parse(response)
57
+ return json
58
+ rescue Exception=>e
59
+ print e
60
+ return nil
61
+ end
62
+ when 8
63
+ image_file_name, language , use_default_dictionaries, x , y, height, width, folder = *args
64
+ begin
65
+ str_uri = $product_uri
66
+ str_uri += '/ocr/'
67
+ str_uri += image_file_name
68
+ str_uri += '/recognize?language='
69
+ str_uri += language
70
+ str_uri += ((x >= 0 && y >= 0 && width > 0 && height > 0) ? '&rectX=' + x.to_s + '&rectY=' + y.to_s + '&rectWidth=' + width.to_s + '&rectHeight=' + height.to_s : '')
71
+ str_uri += '&useDefaultDictionaries='
72
+ str_uri += ((use_default_dictionaries) ? 'true' : 'false')
73
+ str_uri +=((folder=='') ? '' : '&folder=' + folder)
74
+
75
+ signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
76
+
77
+ response = RestClient.get(signed_uri, :accept=> 'application/json')
78
+ json = JSON.parse(response)
79
+ return json
80
+ rescue Exception=>e
81
+ print e
82
+ return nil
83
+ end
84
+ when 3
85
+ stream,language,use_default_dictionaries = *args
86
+ begin
87
+ str_uri = $product_uri + '/ocr/recognize?language=' + language.to_s + '&useDefaultDictionaries=' + use_default_dictionaries.to_s
88
+ signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
89
+ response = RestClient.post(signed_uri,stream, :accept=> 'application/json')
90
+ json = JSON.parse(response)
91
+ return json
92
+ rescue Exception=>e
93
+ print e
94
+ return nil
95
+ end
96
+ end
97
+ end
98
+
99
+
100
+ def extract_text_from_local_file(local_file,language,use_default_dictionaries)
101
+ begin
102
+ str_uri = $product_uri + '/ocr/recognize?language=' + language.to_s + '&useDefaultDictionaries=' + use_default_dictionaries.to_s
103
+ file_stream = File.binread(local_file)
104
+ signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
105
+ response = RestClient.post(signed_uri,file_stream, :accept=> 'application/json')
106
+ json = JSON.parse(response)
107
+ return json
108
+ rescue Exception=>e
109
+ print e
110
+ return nil
111
+ end
112
+ end
113
+ def extract_text_from_url(url,language,use_default_dictionaries)
114
+ begin
115
+ str_uri = $product_uri + '/ocr/recognize?url=' + url + '&language=' + language + '&useDefaultDictionaries=' + use_default_dictionaries
116
+ signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
117
+ response = RestClient.post(signed_uri,:accept => 'application/json')
118
+ json=JSON.parse(response)
119
+ return json
120
+ rescue Exception=>e
121
+ print e
122
+ end
123
+ end
124
+ end
125
+ end
126
+
127
+ end
128
+ end
@@ -0,0 +1,533 @@
1
+ module Aspose
2
+ module Cloud
3
+
4
+ module Pdf
5
+ class AnnotationEditor
6
+ def initialize filename
7
+ @filename = filename
8
+ end
9
+
10
+ =begin
11
+ Gets number of annotations on a specified document page
12
+ @param number page_number
13
+ =end
14
+
15
+ def get_annotations_count page_number
16
+ begin
17
+
18
+ if @filename == ''
19
+ raise 'filename not specified'
20
+ end
21
+
22
+ if page_number == ''
23
+ raise 'page number not specified'
24
+ end
25
+
26
+ str_uri = $product_uri + '/pdf/' + @filename + '/pages/' + page_number.to_s + '/annotations'
27
+ str_signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
28
+ response_stream = RestClient.get(str_signed_uri, {:accept=>'application/json'})
29
+
30
+ stream_hash = JSON.parse(response_stream)
31
+
32
+ return stream_hash['Annotations']['List'].length
33
+
34
+
35
+ rescue Exception=>e
36
+ print e
37
+ end
38
+ end
39
+
40
+ =begin
41
+ Gets a specfied annotation on a specified document page
42
+ @param number page_number
43
+ @param number annotation_index
44
+ =end
45
+
46
+ def get_annotation page_number, annotation_index
47
+ begin
48
+
49
+ if @filename == ''
50
+ raise 'filename not specified'
51
+ end
52
+
53
+ if page_number == ''
54
+ raise 'page number not specified'
55
+ end
56
+
57
+ if annotation_index == ''
58
+ raise 'annotation index not specified'
59
+ end
60
+
61
+ str_uri = $product_uri + '/pdf/' + @filename + '/pages/' + page_number.to_s + '/annotations/' + annotation_index.to_s
62
+ str_signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
63
+ response_stream = RestClient.get(str_signed_uri, {:accept=>'application/json'})
64
+
65
+ stream_hash = JSON.parse(response_stream)
66
+
67
+ return stream_hash['Annotation']
68
+
69
+
70
+ rescue Exception=>e
71
+ print e
72
+ end
73
+ end
74
+
75
+ =begin
76
+ Gets list of all the annotations on a specified document page
77
+ @param number page_number
78
+ =end
79
+
80
+ def get_all_annotation page_number
81
+ begin
82
+
83
+ if @filename == ''
84
+ raise 'filename not specified'
85
+ end
86
+
87
+ if page_number == ''
88
+ raise 'page number not specified'
89
+ end
90
+
91
+ total_annotations = self.get_annotations_count(page_number)
92
+
93
+ all_annotations = Array.new
94
+
95
+ index = 1
96
+ while index <= total_annotations
97
+
98
+ all_annotations.push(self.get_annotation(page_number, index))
99
+
100
+ index+=1
101
+ end
102
+
103
+ return all_annotations
104
+
105
+
106
+ rescue Exception=>e
107
+ print e
108
+ end
109
+ end
110
+
111
+ =begin
112
+ Gets total number of Bookmarks in a Pdf document
113
+ =end
114
+
115
+ def get_bookmarks_count
116
+ begin
117
+
118
+ if @filename == ''
119
+ raise 'filename not specified'
120
+ end
121
+
122
+
123
+ str_uri = $product_uri + '/pdf/' + @filename + '/bookmarks'
124
+ str_signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
125
+ response_stream = RestClient.get(str_signed_uri, {:accept=>'application/json'})
126
+
127
+ stream_hash = JSON.parse(response_stream)
128
+
129
+ return stream_hash['Bookmarks']['List'].length
130
+
131
+
132
+ rescue Exception=>e
133
+ print e
134
+ end
135
+ end
136
+
137
+ =begin
138
+ Gets number of child bookmarks in a specfied parent bookmark
139
+ @param number parent
140
+ =end
141
+
142
+ def get_child_bookmarks_count parent
143
+ begin
144
+
145
+ if @filename == ''
146
+ raise 'filename not specified'
147
+ end
148
+
149
+ if parent == ''
150
+ raise 'parent not specified'
151
+ end
152
+
153
+
154
+ str_uri = $product_uri + '/pdf/' + @filename + '/bookmarks/' + parent.to_s + '/bookmarks'
155
+ str_signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
156
+ response_stream = RestClient.get(str_signed_uri, {:accept=>'application/json'})
157
+
158
+ stream_hash = JSON.parse(response_stream)
159
+
160
+ return stream_hash['Bookmarks']['List'].length
161
+
162
+
163
+ rescue Exception=>e
164
+ print e
165
+ end
166
+ end
167
+
168
+ =begin
169
+ Gets a specfied Bookmark from a PDF document
170
+ @param number bookmark_index
171
+ =end
172
+
173
+ def get_bookmark bookmark_index
174
+ begin
175
+
176
+ if @filename == ''
177
+ raise 'filename not specified'
178
+ end
179
+
180
+ if bookmark_index == ''
181
+ raise 'bookmark index not specified'
182
+ end
183
+
184
+
185
+ str_uri = $product_uri + '/pdf/' + @filename + '/bookmarks/' + bookmark_index.to_s
186
+ str_signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
187
+ response_stream = RestClient.get(str_signed_uri, {:accept=>'application/json'})
188
+
189
+ stream_hash = JSON.parse(response_stream)
190
+
191
+ return stream_hash['Bookmark']
192
+
193
+
194
+ rescue Exception=>e
195
+ print e
196
+ end
197
+ end
198
+
199
+ =begin
200
+ Gets a specfied Child Bookmark from a PDF document
201
+ @param number parent_index
202
+ @param number child_index
203
+ =end
204
+
205
+ def get_child_bookmark parent_index, child_index
206
+ begin
207
+
208
+ if @filename == ''
209
+ raise 'filename not specified'
210
+ end
211
+
212
+ if parent_index == ''
213
+ raise 'parent index not specified'
214
+ end
215
+
216
+ if child_index == ''
217
+ raise 'child index not specified'
218
+ end
219
+
220
+
221
+ str_uri = $product_uri + '/pdf/' + @filename + '/bookmarks/' + parent_index.to_s + '/bookmarks/' + child_index.to_s
222
+ str_signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
223
+ response_stream = RestClient.get(str_signed_uri, {:accept=>'application/json'})
224
+
225
+ stream_hash = JSON.parse(response_stream)
226
+
227
+ return stream_hash['Bookmark']
228
+
229
+
230
+ rescue Exception=>e
231
+ print e
232
+ end
233
+ end
234
+
235
+ =begin
236
+ Gets list of all the bookmarks in pdf
237
+ =end
238
+
239
+ def get_all_bookmarks
240
+ begin
241
+
242
+ if @filename == ''
243
+ raise 'filename not specified'
244
+ end
245
+
246
+
247
+ total_bookmarks = self.get_bookmarks_count
248
+
249
+ all_bookmarks = Array.new
250
+
251
+ index = 1
252
+ while index <= total_bookmarks
253
+
254
+ all_annotations.push(self.get_bookmark(index))
255
+
256
+ index+=1
257
+ end
258
+
259
+ return all_bookmarks
260
+
261
+
262
+ rescue Exception=>e
263
+ print e
264
+ end
265
+ end
266
+
267
+ =begin
268
+ Gets total number of Attachments in a Pdf document
269
+ =end
270
+
271
+ def get_attachments_count
272
+ begin
273
+
274
+ if @filename == ''
275
+ raise 'filename not specified'
276
+ end
277
+
278
+
279
+ str_uri = $product_uri + '/pdf/' + @filename + '/attachments'
280
+ str_signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
281
+
282
+ response_stream = RestClient.get(str_signed_uri, {:accept=>'application/json'})
283
+
284
+ stream_hash = JSON.parse(response_stream)
285
+
286
+ return stream_hash['Attachments']['List'].length
287
+
288
+
289
+ rescue Exception=>e
290
+ print e
291
+ end
292
+ end
293
+
294
+ =begin
295
+ Gets a specfied Attachment from a PDF document
296
+ @param number attachment_index
297
+ =end
298
+
299
+ def get_attachment attachment_index
300
+ begin
301
+
302
+ if @filename == ''
303
+ raise 'filename not specified'
304
+ end
305
+
306
+ if attachment_index == ''
307
+ raise 'attachment index not specified'
308
+ end
309
+
310
+
311
+ str_uri = $product_uri + '/pdf/' + @filename + '/attachments/' + attachment_index.to_s
312
+ str_signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
313
+ response_stream = RestClient.get(str_signed_uri, {:accept=>'application/json'})
314
+
315
+ stream_hash = JSON.parse(response_stream)
316
+
317
+ return stream_hash['Attachment']
318
+
319
+
320
+ rescue Exception=>e
321
+ print e
322
+ end
323
+ end
324
+
325
+ =begin
326
+ Gets list of all the attachments in pdf
327
+ =end
328
+
329
+ def get_all_attachments
330
+ begin
331
+
332
+ if @filename == ''
333
+ raise 'filename not specified'
334
+ end
335
+
336
+
337
+ total_attachments = self.get_attachments_count
338
+
339
+ all_attachments = Array.new
340
+
341
+ index = 1
342
+ while index <= total_attachments
343
+
344
+ all_annotations.push(self.get_attachment(index))
345
+
346
+ index+=1
347
+ end
348
+
349
+ return all_attachments
350
+
351
+
352
+ rescue Exception=>e
353
+ print e
354
+ end
355
+ end
356
+
357
+ =begin
358
+ Download a specfied Attachment from a PDF document
359
+ @param number attachment_index
360
+ =end
361
+
362
+ def download_attachment attachment_index
363
+ begin
364
+
365
+ if @filename == ''
366
+ raise 'filename not specified'
367
+ end
368
+
369
+ if attachment_index == ''
370
+ raise 'attachment index not specified'
371
+ end
372
+
373
+ file_info = self.get_attachment(attachment_index)
374
+
375
+
376
+ str_uri = $product_uri + '/pdf/' + @filename + '/attachments/' + attachment_index.to_s + '/download'
377
+ str_signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
378
+ response_stream = RestClient.get(str_signed_uri, {:accept=>'application/json'})
379
+
380
+ valid_output = Aspose::Cloud::Common::Utils.validate_output(response_stream)
381
+
382
+ if valid_output == ''
383
+ output_path = $out_put_location + file_info['Name'];
384
+ Aspose::Cloud::Common::Utils.saveFile(response_stream,output_path)
385
+ return ''
386
+ else
387
+ return valid_output
388
+ end
389
+
390
+
391
+ rescue Exception=>e
392
+ print e
393
+ end
394
+ end
395
+
396
+ =begin
397
+ Gets total number of Links in a Pdf document
398
+ @param number page_number
399
+ =end
400
+
401
+ def get_links_count page_number
402
+ begin
403
+
404
+ if @filename == ''
405
+ raise 'filename not specified'
406
+ end
407
+
408
+ if page_number == ''
409
+ raise 'page number not specified'
410
+ end
411
+
412
+
413
+ str_uri = $product_uri + '/pdf/' + @filename + '/pages/' + page_number.to_s + '/links'
414
+ str_signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
415
+ response_stream = RestClient.get(str_signed_uri, {:accept=>'application/json'})
416
+
417
+ stream_hash = JSON.parse(response_stream)
418
+
419
+ return stream_hash['Links']['List'].length
420
+
421
+
422
+ rescue Exception=>e
423
+ print e
424
+ end
425
+ end
426
+
427
+ =begin
428
+ Gets a specfied link on a specified document page
429
+ @param number page_number
430
+ @param number annotation_index
431
+ =end
432
+
433
+ def get_link page_number, link_index
434
+ begin
435
+
436
+ if @filename == ''
437
+ raise 'filename not specified'
438
+ end
439
+
440
+ if page_number == ''
441
+ raise 'page number not specified'
442
+ end
443
+
444
+ if link_index == ''
445
+ raise 'link index not specified'
446
+ end
447
+
448
+ str_uri = $product_uri + '/pdf/' + @filename + '/pages/' + page_number.to_s + '/links/' + link_index.to_s
449
+ str_signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
450
+ response_stream = RestClient.get(str_signed_uri, {:accept=>'application/json'})
451
+
452
+ stream_hash = JSON.parse(response_stream)
453
+
454
+ return stream_hash['Link']
455
+
456
+
457
+ rescue Exception=>e
458
+ print e
459
+ end
460
+ end
461
+
462
+ =begin
463
+ Gets list of all the links on a specified document page
464
+ @param number page_number
465
+ =end
466
+
467
+ def get_all_links page_number
468
+ begin
469
+
470
+ if @filename == ''
471
+ raise 'filename not specified'
472
+ end
473
+
474
+ if page_number == ''
475
+ raise 'page number not specified'
476
+ end
477
+
478
+ total_links = self.get_links_count(page_number)
479
+
480
+ all_links = Array.new
481
+
482
+ index = 1
483
+ while index <= total_links
484
+
485
+ all_annotations.push(self.get_link(page_number, index))
486
+
487
+ index+=1
488
+ end
489
+
490
+ return all_links
491
+
492
+
493
+ rescue Exception=>e
494
+ print e
495
+ end
496
+ end
497
+
498
+ =begin
499
+ Checks whether selected bookmark is parent or child Gets a specfied child Bookmark for selected parent bookmark in Pdf document
500
+ @param number bookmark_index
501
+ =end
502
+
503
+ def is_child_bookmark bookmark_index
504
+ begin
505
+
506
+ if @filename == ''
507
+ raise 'filename not specified'
508
+ end
509
+
510
+ if bookmark_index == ''
511
+ raise 'bookmark index not specified'
512
+ end
513
+
514
+
515
+ str_uri = $product_uri + '/pdf/' + @filename + '/bookmarks/' + bookmark_index.to_s
516
+ str_signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
517
+ response_stream = RestClient.get(str_signed_uri, {:accept=>'application/json'})
518
+
519
+ stream_hash = JSON.parse(response_stream)
520
+
521
+ return stream_hash['Bookmark']
522
+
523
+
524
+ rescue Exception=>e
525
+ print e
526
+ end
527
+ end
528
+
529
+ end
530
+ end
531
+
532
+ end
533
+ end