Module: Aliyun::Oss::API

Extended by:
API
Included in:
API
Defined in:
lib/aliyunoss/api.rb

Overview

Instance Method Summary collapse

Instance Method Details

#copy_object(source_bucket, source_path, target_bucket, target_path, headers = {}) ⇒ Object

Copy Object



155
156
157
158
# File 'lib/aliyunoss/api.rb', line 155

def copy_object(source_bucket, source_path, target_bucket, target_path, headers = {})
  headers = headers.merge({'x-oss-copy-source'=> "/" + source_bucket.name + source_path})
  Aliyun::Oss::OssRequest.new(target_bucket, target_path, nil, {}, headers).put
end

#delete_bucket(bucket) ⇒ Object

Delete a bucket



37
38
39
# File 'lib/aliyunoss/api.rb', line 37

def delete_bucket(bucket)
  Aliyun::Oss::OssRequest.new(bucket, '/').delete
end

#delete_logging(bucket) ⇒ Object

Delete bucket logging



44
45
46
# File 'lib/aliyunoss/api.rb', line 44

def delete_logging(bucket)
  Aliyun::Oss::OssRequest.new(bucket, '/', nil, 'logging'=>nil).delete
end

#delete_multiple_objects(bucket, objects, quiet_mode = false) ⇒ Object

Delete Multiple Object



170
171
172
173
174
175
176
177
178
179
# File 'lib/aliyunoss/api.rb', line 170

def delete_multiple_objects(bucket, objects, quiet_mode = false)
  xml = '<?xml version="1.0" encoding="UTF-8"?>'
  xml << '<Delete>'
  xml << "<Quiet>#{quiet_mode}</Quiet>"
  objects.each {|o| xml << "<Object><Key>#{o}</Key></Object>"}
  xml << '</Delete>'
  request = Aliyun::Oss::OssRequest.new(bucket, '/', nil, 'delete'=>nil)
  request.body = xml
  request.post
end

#delete_object(bucket, path) ⇒ Object

Delete Object



163
164
165
# File 'lib/aliyunoss/api.rb', line 163

def delete_object(bucket, path)
  Aliyun::Oss::OssRequest.new(bucket, path).delete
end

#delete_website(bucket) ⇒ Object Also known as: disable_website

Delete bucket website



51
52
53
# File 'lib/aliyunoss/api.rb', line 51

def delete_website(bucket)
  Aliyun::Oss::OssRequest.new(bucket, '/', nil, 'website'=>nil).delete
end

#disable_bucket_logging(bucket) ⇒ Object

Disable bucket logging



120
121
122
123
124
125
126
127
128
129
# File 'lib/aliyunoss/api.rb', line 120

def disable_bucket_logging(bucket)
  request = Aliyun::Oss::OssRequest.new(bucket, '/', nil, 'logging'=>nil)
  request.body = <<HERE
<?xml version="1.0" encoding="UTF-8"?>
<BucketLoggingStatus>
</BucketLoggingStatus>
HERE
  request['Content-Type'] = 'application/xml'
  request.put        
end

#enable_bucket_logging(bucket, bucket_name_for_logging, log_prefix) ⇒ Object

Enable bucket logging



102
103
104
105
106
107
108
109
110
111
112
113
114
115
# File 'lib/aliyunoss/api.rb', line 102

def enable_bucket_logging(bucket, bucket_name_for_logging, log_prefix)
  request = Aliyun::Oss::OssRequest.new(bucket, '/', nil, 'logging'=>nil)
  request.body = <<HERE
<?xml version="1.0" encoding="UTF-8"?>
<BucketLoggingStatus>
  <LoggingEnabled>
    <TargetBucket>#{bucket_name_for_logging}</TargetBucket>
    <TargetPrefix>#{log_prefix}</TargetPrefix>
  </LoggingEnabled>
</BucketLoggingStatus>
HERE
  request['Content-Type'] = 'application/xml'
  request.put
end

#generate_share_url(bucket, path, expires_in = 3600) ⇒ Object

get share url for specified object



207
208
209
# File 'lib/aliyunoss/api.rb', line 207

def generate_share_url(bucket, path, expires_in = 3600)
  Aliyun::Oss::OssRequest.new(bucket, path).url_for_sharing(expires_in)
end

#get_bucket_acl(bucket) ⇒ Object

Get bucket acl



66
67
68
# File 'lib/aliyunoss/api.rb', line 66

def get_bucket_acl(bucket)
  Aliyun::Oss::OssRequest.new(bucket, '/', nil, 'acl'=>nil).get
end

#get_bucket_location(bucket) ⇒ Object

Get bucket location



73
74
75
# File 'lib/aliyunoss/api.rb', line 73

def get_bucket_location(bucket)
  Aliyun::Oss::OssRequest.new(bucket, '/', nil, 'location'=>nil).get
end

#get_bucket_logging(bucket) ⇒ Object

Query bucket logging status



80
81
82
# File 'lib/aliyunoss/api.rb', line 80

def get_bucket_logging(bucket)
  Aliyun::Oss::OssRequest.new(bucket, '/', nil, 'logging'=>nil).get
end

#get_bucket_website(bucket) ⇒ Object

Query bucket website status



87
88
89
# File 'lib/aliyunoss/api.rb', line 87

def get_bucket_website(bucket)
  Aliyun::Oss::OssRequest.new(bucket, '/', nil, 'website'=>nil).get
end

#get_object(bucket, path, headers = {}) ⇒ Object

Get Object



184
185
186
# File 'lib/aliyunoss/api.rb', line 184

def get_object(bucket, path, headers = {})
  Aliyun::Oss::OssRequest.new(bucket, path, nil, {}, headers).get
end

#head_object(bucket, path, headers = {}) ⇒ Object

Head Object



191
192
193
# File 'lib/aliyunoss/api.rb', line 191

def head_object(bucket, path, headers = {})
  Aliyun::Oss::OssRequest.new(bucket, path, nil, {}, headers).head
end

#headers_for_upload(bucket, path, filename: nil, content_type:, content_length:, checksum:, custom_metadata: {}) ⇒ Object

return headers for uploading object options



215
216
217
218
219
220
221
222
# File 'lib/aliyunoss/api.rb', line 215

def headers_for_upload(bucket, path, filename: nil, 
                       content_type:, content_length:, checksum:, custom_metadata: {})
  Aliyun::Oss::OssRequest.new(bucket, path).headers_for_write(filename: filename,
                                                              content_type: content_type,
                                                              content_length: content_length,
                                                              checksum: checksum,
                                                              custom_metadata: )
end

#list_bucket(params = {}) ⇒ Object Also known as: get_service

List all buckets



13
14
15
# File 'lib/aliyunoss/api.rb', line 13

def list_bucket(params = {})
  Aliyun::Oss::OssRequest.new(nil, '/', nil, {}, {}).get
end

#list_object(bucket, queries = {}) ⇒ Object

List objects in bucket



59
60
61
# File 'lib/aliyunoss/api.rb', line 59

def list_object(bucket, queries = {})
  Aliyun::Oss::OssRequest.new(bucket, '/', nil, queries).get
end

#multipart_upload_abort(bucket, path, upload_id) ⇒ Object

Abort an upload task



282
283
284
# File 'lib/aliyunoss/api.rb', line 282

def multipart_upload_abort(bucket, path, upload_id)
  Aliyun::Oss::OssRequest.new(bucket, path, nil, 'uploadId'=> upload_id).delete
end

#multipart_upload_complete(bucket, path, upload_id, part_list) ⇒ Object

Complete an multipart upload.



269
270
271
272
273
274
275
276
277
# File 'lib/aliyunoss/api.rb', line 269

def multipart_upload_complete(bucket, path, upload_id, part_list)
  request = Aliyun::Oss::OssRequest.new(bucket, path, nil, 'uploadId'=> upload_id)
  xml = '<?xml version="1.0" encoding="UTF-8"?>'   
  xml << '<CompleteMultipartUpload>'
  part_list.each_pair {|k,v| xml << "<Part><PartNumber>#{k}</PartNumber><ETag>#{v}</ETag></Part>"}
  xml << '</CompleteMultipartUpload>'
  request.body = xml
  request.post
end

#multipart_upload_finished_parts(bucket, path, upload_id) ⇒ Object

List finished multipart parts



289
290
291
# File 'lib/aliyunoss/api.rb', line 289

def multipart_upload_finished_parts(bucket, path, upload_id)
  Aliyun::Oss::OssRequest.new(bucket, path, nil, 'uploadId'=> upload_id).get
end

#multipart_upload_from_copy(upload_id, source_bucket, source_path, target_bucket, target_path, part_number, part_size, range = nil) ⇒ Object

Multipart upload from copy



258
259
260
261
262
263
264
# File 'lib/aliyunoss/api.rb', line 258

def multipart_upload_from_copy(upload_id, source_bucket, source_path, target_bucket, target_path, part_number, part_size, range = nil)
  request = Aliyun::Oss::OssRequest.new(target_bucket, target_path, nil, 'partNumber'=> part_number.to_s, 'uploadId'=> upload_id)
  request['Content-Length'] = part_size
  request['x-oss-copy-source'] = "/" + source_bucket.name + source_path
  request['x-oss-copy-source-range'] = range if range
  request.put
end

#multipart_upload_initiate(bucket, path) ⇒ Object

Multipart Initiate



242
243
244
# File 'lib/aliyunoss/api.rb', line 242

def multipart_upload_initiate(bucket, path)
  Aliyun::Oss::OssRequest.new(bucket, path, nil, 'uploads'=>nil).post
end

#multipart_upload_part(bucket, path, upload_id, data, part_number) ⇒ Object

Multipart upload part



249
250
251
252
253
# File 'lib/aliyunoss/api.rb', line 249

def multipart_upload_part(bucket, path, upload_id, data, part_number)
  request = Aliyun::Oss::OssRequest.new(bucket, path, nil, 'partNumber'=> part_number.to_s, 'uploadId'=> upload_id)
  request.body = data
  request.put
end

#multipart_upload_unfinished_task(bucket) ⇒ Object

List all unfinished multipart task



296
297
298
# File 'lib/aliyunoss/api.rb', line 296

def multipart_upload_unfinished_task(bucket)
  Aliyun::Oss::OssRequest.new(bucket, '/', nil, 'uploads'=>nil).get
end

#put_bucket(name, location = 'oss-cn-hangzhou') ⇒ Object Also known as: create_bucket

Create a new bucket



21
22
23
24
25
26
27
28
29
30
31
# File 'lib/aliyunoss/api.rb', line 21

def put_bucket(name, location = 'oss-cn-hangzhou')
  bucket = Bucket.new(name: name, location: location)
  request = Aliyun::Oss::OssRequest.new(bucket, '/')
  request.body = <<HERE
<?xml version="1.0" encoding="UTF-8"?>
<CreateBucketConfiguration>
<LocationConstraint>#{location}</LocationConstraint>
</CreateBucketConfiguration>
HERE
  request.put
end

#put_bucket_acl(bucket, permission) ⇒ Object Also known as: set_bucket_acl

Set bucket acl permission



94
95
96
# File 'lib/aliyunoss/api.rb', line 94

def put_bucket_acl(bucket, permission)
  Aliyun::Oss::OssRequest.new(bucket, '/', nil, {}, 'x-oss-acl'=> permission).put
end

#put_bucket_website(bucket, index_page, error_page) ⇒ Object Also known as: set_bucket_website

Set bucket website access



134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# File 'lib/aliyunoss/api.rb', line 134

def put_bucket_website(bucket, index_page, error_page)
  request = Aliyun::Oss::OssRequest.new(bucket, '/', nil, 'website'=>nil)
  request.body = <<HERE
<?xml version="1.0" encoding="UTF-8"?>
<WebsiteConfiguration>
  <IndexDocument>
    <Suffix>#{index_page}</Suffix>
  </IndexDocument>
  <ErrorDocument>
    <Key>#{error_page}</Key>
  </ErrorDocument>
</WebsiteConfiguration>
HERE
  request['Content-Type'] = 'application/xml'
  request.put
end

#put_object(bucket, path, data, headers = {}) ⇒ Object

Put Object



198
199
200
201
202
# File 'lib/aliyunoss/api.rb', line 198

def put_object(bucket, path, data, headers = {})
  request = Aliyun::Oss::OssRequest.new(bucket, path, nil, {}, headers)
  request.body = data
  request.put
end