Module: Dag::Client::API::Storage
Defined Under Namespace
Classes: Import, MultipartUpload
Instance Method Summary
collapse
-
#buckets ⇒ Object
-
#create_bucket(bucket) ⇒ Object
-
#create_multipart_object(bucket, object_name, options = {}, &block) ⇒ Object
-
#create_object(bucket, object_name, options = {}, &block) ⇒ Object
-
#delete_bucket(bucket) ⇒ Object
-
#delete_object(bucket, object) ⇒ Object
-
#get_object(bucket, object, range = nil) ⇒ Object
-
#import(db_name, tbl_name, file_paths, options = {}) ⇒ Object
-
#objects(bucket, prefix: nil, max: nil, marker: nil, delimiter: nil) ⇒ Object
Instance Method Details
#create_bucket(bucket) ⇒ Object
36
37
38
39
|
# File 'lib/dag/client/api/storage.rb', line 36
def create_bucket(bucket)
resource = '/'
execute_storage(RestParameter.new(:put, resource, bucket: bucket, content_type: 'application/json'))
end
|
#create_multipart_object(bucket, object_name, options = {}, &block) ⇒ Object
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
# File 'lib/dag/client/api/storage.rb', line 50
def create_multipart_object(bucket, object_name, options = {}, &block)
mu = MultipartUpload.new(bucket, object_name, options) do
self
end
upload_id = mu.initiate_multipart_upload
begin
upload_objects = mu.upload_part(upload_id, &block)
mu.complete_multipart_upload(upload_id, upload_objects)
rescue => e
mu.abort_multipart_upload(upload_id)
raise e
end
end
|
#create_object(bucket, object_name, options = {}, &block) ⇒ Object
41
42
43
44
45
46
47
48
|
# File 'lib/dag/client/api/storage.rb', line 41
def create_object(bucket, object_name, options = {}, &block)
resource = "/#{object_name}"
type = MIME::Types.type_for(object_name).first
content_type = type ? type.to_s : 'application/octet-stream'
options = options.merge(bucket: bucket, content_type: content_type)
execute_storage(RestParameter.new(:put, resource, options), &block)
end
|
#delete_bucket(bucket) ⇒ Object
84
85
86
87
|
# File 'lib/dag/client/api/storage.rb', line 84
def delete_bucket(bucket)
resource = '/'
execute_storage(RestParameter.new(:delete, resource, bucket: bucket))
end
|
#delete_object(bucket, object) ⇒ Object
89
90
91
92
|
# File 'lib/dag/client/api/storage.rb', line 89
def delete_object(bucket, object)
resource = "/#{object}"
execute_storage(RestParameter.new(:delete, resource, bucket: bucket, content_type: 'application/json'))
end
|
#get_object(bucket, object, range = nil) ⇒ Object
73
74
75
76
77
78
79
80
81
82
|
# File 'lib/dag/client/api/storage.rb', line 73
def get_object(bucket, object, range = nil)
resource = "/#{object}"
= {}
if range
bt = "bytes=#{range.first}-"
bt += "#{range.last}" if range.last != -1
[:Range] = bt
end
execute_storage(RestParameter.new(:get, resource, bucket: bucket, raw_data: true, headers: ))
end
|
#import(db_name, tbl_name, file_paths, options = {}) ⇒ Object
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
# File 'lib/dag/client/api/storage.rb', line 94
def import(db_name, tbl_name, file_paths, options = {})
_import = Import.new(db_name, tbl_name, file_paths, options) do
self
end
suffix = _import.calc_label_suffix
upload_objects = _import.execute(suffix)
STDERR.puts "finished upload #{upload_objects.size} objects."
STDERR.puts
STDERR.puts 'upload_objects:'
upload_objects.each do |o|
STDERR.puts o
end
end
|
#objects(bucket, prefix: nil, max: nil, marker: nil, delimiter: nil) ⇒ Object
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'lib/dag/client/api/storage.rb', line 13
def objects(bucket, prefix: nil, max: nil, marker: nil, delimiter: nil)
resource = '/'
query_params = {}
if prefix
query_params.merge!('prefix' => prefix)
end
if max
query_params.merge!('max-keys' => max)
end
if marker
query_params.merge!('marker' => marker)
end
if delimiter
query_params.merge!('delimiter' => delimiter)
end
xml_doc = execute_storage(RestParameter.new(:get, resource, bucket: bucket, query_params: query_params))
Dag::Client::API::ObjectsResult.new(xml_doc)
end
|