Module: Aliyun::Oss::Api::BucketObjects
- Included in:
- Client
- Defined in:
- lib/aliyun/oss/api/bucket_objects.rb
Instance Method Summary collapse
-
#bucket_append_object(key, file, position = 0, headers = {}) ⇒ Response
Append data to a object, will create Appendable object.
-
#bucket_copy_object(key, source_bucket, source_key, headers = {}) ⇒ Response
Copy an existing object in OSS into another object.
-
#bucket_create_object(key, file, headers = {}) ⇒ Response
Upload file to bucket.
-
#bucket_delete_object(key) ⇒ Response
Delete object from bucket.
-
#bucket_delete_objects(keys, quiet = false) ⇒ Response
Delete multiple objects, at max 1000 at once.
-
#bucket_get_meta_object(key, headers = {}) ⇒ Response
Get meta information of object.
-
#bucket_get_object(key, query = {}, headers = {}) ⇒ Response
Get the object.
-
#bucket_get_object_acl(key) ⇒ Response
Get access of object.
-
#bucket_get_object_share_link(key, expired_in_seconds) ⇒ String
Get object share link.
-
#bucket_list_objects(options = {}) ⇒ Response
List objects in the bucket.
-
#bucket_set_object_acl(key, acl) ⇒ Response
Set access of object.
Instance Method Details
#bucket_append_object(key, file, position = 0, headers = {}) ⇒ Response
Append data to a object, will create Appendable object
88 89 90 91 92 93 94 95 |
# File 'lib/aliyun/oss/api/bucket_objects.rb', line 88 def bucket_append_object(key, file, position = 0, headers = {}) Utils.stringify_keys!(headers) query = { 'append' => true, 'position' => position } body = Utils.to_data(file) http.post("/#{key}", query: query, headers: headers, body: body, bucket: bucket, key: key) end |
#bucket_copy_object(key, source_bucket, source_key, headers = {}) ⇒ Response
Copy an existing object in OSS into another object
66 67 68 69 70 71 72 73 74 |
# File 'lib/aliyun/oss/api/bucket_objects.rb', line 66 def bucket_copy_object(key, source_bucket, source_key, headers = {}) fail('source_bucket must be not empty!') if source_bucket.nil? || source_bucket.empty? fail('source_key must be not empty!') if source_key.nil? || source_key.empty? Utils.stringify_keys!(headers) headers.merge!('x-oss-copy-source' => "/#{source_bucket}/#{source_key}") http.put("/#{key}", headers: headers, bucket: bucket, key: key) end |
#bucket_create_object(key, file, headers = {}) ⇒ Response
Upload file to bucket
42 43 44 45 |
# File 'lib/aliyun/oss/api/bucket_objects.rb', line 42 def bucket_create_object(key, file, headers = {}) Utils.stringify_keys!(headers) http.put("/#{key}", headers: headers, body: Utils.to_data(file), bucket: bucket, key: key) end |
#bucket_delete_object(key) ⇒ Response
Delete object from bucket
152 153 154 |
# File 'lib/aliyun/oss/api/bucket_objects.rb', line 152 def bucket_delete_object(key) http.delete("/#{key}", bucket: bucket, key: key) end |
#bucket_delete_objects(keys, quiet = false) ⇒ Response
Delete multiple objects, at max 1000 at once
164 165 166 167 168 169 170 |
# File 'lib/aliyun/oss/api/bucket_objects.rb', line 164 def bucket_delete_objects(keys, quiet = false) query = { 'delete' => true } body = XmlGenerator.generate_delete_objects_xml(keys, quiet) http.post('/', query: query, body: body, bucket: bucket) end |
#bucket_get_meta_object(key, headers = {}) ⇒ Response
Get meta information of object
186 187 188 189 |
# File 'lib/aliyun/oss/api/bucket_objects.rb', line 186 def (key, headers = {}) Utils.stringify_keys!(headers) http.head("/#{key}", headers: headers, bucket: bucket, key: key) end |
#bucket_get_object(key, query = {}, headers = {}) ⇒ Response
Get the object
117 118 119 120 121 122 |
# File 'lib/aliyun/oss/api/bucket_objects.rb', line 117 def bucket_get_object(key, query = {}, headers = {}) Utils.stringify_keys!(query) Utils.stringify_keys!(headers) http.get("/#{key}", query: query, headers: headers, bucket: bucket, key: key) end |
#bucket_get_object_acl(key) ⇒ Response
Get access of object
200 201 202 203 |
# File 'lib/aliyun/oss/api/bucket_objects.rb', line 200 def bucket_get_object_acl(key) query = { 'acl' => true } http.get("/#{key}", query: query, bucket: bucket, key: key) end |
#bucket_get_object_share_link(key, expired_in_seconds) ⇒ String
Get object share link
130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
# File 'lib/aliyun/oss/api/bucket_objects.rb', line 130 def bucket_get_object_share_link(key, expired_in_seconds) expire_time = Time.now.to_i + expired_in_seconds signature = Authorization.get_temporary_signature( @secret_key, expire_time, verb: 'GET', bucket: bucket, key: key ) Utils.get_endpoint(bucket, @options[:host]) + "#{key}?" \ "OSSAccessKeyId=#{@access_key}&Expires=#{expire_time}&Signature=#{signature}" end |
#bucket_list_objects(options = {}) ⇒ Response
List objects in the bucket
17 18 19 20 21 22 |
# File 'lib/aliyun/oss/api/bucket_objects.rb', line 17 def bucket_list_objects( = {}) Utils.stringify_keys!() accepted_keys = ['prefix', 'marker', 'max-keys', 'delimiter', 'encoding-type'] query = Utils.hash_slice(, *accepted_keys) http.get('/', query: query, bucket: bucket) end |
#bucket_set_object_acl(key, acl) ⇒ Response
Set access of object
215 216 217 218 219 |
# File 'lib/aliyun/oss/api/bucket_objects.rb', line 215 def bucket_set_object_acl(key, acl) query = { 'acl' => true } headers = { 'x-oss-object-acl' => acl } http.put("/#{key}", query: query, headers: headers, bucket: bucket, key: key) end |