Module: Aliyun::Oss::API
Overview
Instance Method Summary collapse
-
#copy_object(source_bucket, source_path, target_bucket, target_path, headers = {}) ⇒ Object
Copy Object.
-
#delete_bucket(bucket) ⇒ Object
Delete a bucket.
-
#delete_logging(bucket) ⇒ Object
Delete bucket logging.
-
#delete_multiple_objects(bucket, objects, quiet_mode = false) ⇒ Object
Delete Multiple Object.
-
#delete_object(bucket, path) ⇒ Object
Delete Object.
-
#delete_website(bucket) ⇒ Object
(also: #disable_website)
Delete bucket website.
-
#disable_bucket_logging(bucket) ⇒ Object
Disable bucket logging.
-
#enable_bucket_logging(bucket, bucket_name_for_logging, log_prefix) ⇒ Object
Enable bucket logging.
-
#generate_share_url(bucket, path, expires_in = 3600) ⇒ Object
get share url for specified object.
-
#get_bucket_acl(bucket) ⇒ Object
Get bucket acl.
-
#get_bucket_location(bucket) ⇒ Object
Get bucket location.
-
#get_bucket_logging(bucket) ⇒ Object
Query bucket logging status.
-
#get_bucket_website(bucket) ⇒ Object
Query bucket website status.
-
#get_object(bucket, path, headers = {}) ⇒ Object
Get Object.
-
#head_object(bucket, path, headers = {}) ⇒ Object
Head Object.
-
#headers_for_upload(bucket, path, filename: nil, content_type:, content_length:, checksum:, custom_metadata: {}) ⇒ Object
return headers for uploading object options.
-
#list_bucket(params = {}) ⇒ Object
(also: #get_service)
List all buckets.
-
#list_object(bucket, queries = {}) ⇒ Object
List objects in bucket.
-
#multipart_upload_abort(bucket, path, upload_id) ⇒ Object
Abort an upload task.
-
#multipart_upload_complete(bucket, path, upload_id, part_list) ⇒ Object
Complete an multipart upload.
-
#multipart_upload_finished_parts(bucket, path, upload_id) ⇒ Object
List finished multipart parts.
-
#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.
-
#multipart_upload_initiate(bucket, path) ⇒ Object
Multipart Initiate.
-
#multipart_upload_part(bucket, path, upload_id, data, part_number) ⇒ Object
Multipart upload part.
-
#multipart_upload_unfinished_task(bucket) ⇒ Object
List all unfinished multipart task.
-
#put_bucket(name, location = 'oss-cn-hangzhou') ⇒ Object
(also: #create_bucket)
Create a new bucket.
-
#put_bucket_acl(bucket, permission) ⇒ Object
(also: #set_bucket_acl)
Set bucket acl permission.
-
#put_bucket_website(bucket, index_page, error_page) ⇒ Object
(also: #set_bucket_website)
Set bucket website access.
-
#put_object(bucket, path, data, headers = {}) ⇒ Object
Put Object.
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, ) Aliyun::Oss::OssRequest.new(bucket, '/', nil, {}, 'x-oss-acl'=> ).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 |