All Products
Search
Document Center

Object Storage Service:Get started with OSS SDK for Ruby

Last Updated:Oct 17, 2023

This topic describes how to use Object Storage Service (OSS) SDK for Ruby to perform routine operations, such as creating a bucket, uploading objects, and downloading objects.

Create a bucket

A bucket is a global namespace in OSS. A bucket is a container that is used to store objects.

require 'aliyun/oss' client = Aliyun::OSS::Client.new( # In this example, the endpoint of the China (Hangzhou) region is used. Specify your actual endpoint. endpoint: 'https://oss-cn-hangzhou.aliyuncs.com', # The AccessKey pair of an Alibaba Cloud account has permissions on all API operations. Using these credentials to perform operations in OSS is a high-risk operation. We recommend that you use a RAM user to call API operations or perform routine O&M. To create a RAM user, log on to the RAM console. access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret') # Specify the name of the bucket. Example: examplebucket. client.create_bucket('examplebucket')

Upload an object

The following code provides an example on how to upload a local file named examplefile.txt to a bucket named examplebucket. The uploaded file is stored as an object named exampleobject.txt in OSS.

require 'aliyun/oss' client = Aliyun::OSS::Client.new( # In this example, the endpoint of the China (Hangzhou) region is used. Specify your actual endpoint. endpoint: 'https://oss-cn-hangzhou.aliyuncs.com', # The AccessKey pair of an Alibaba Cloud account has permissions on all API operations. Using these credentials to perform operations in OSS is a high-risk operation. We recommend that you use a RAM user to call API operations or perform routine O&M. To create a RAM user, log on to the RAM console. access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret') # Specify the name of the bucket. Example: examplebucket. bucket = client.get_bucket('examplebucket') # Replace my-object with the full path of the object. Do not include the bucket name in the full path. # Replace local-file with the full path of the local file that you want to upload. bucket.put_object('my-object', :file => 'local-file')

Download an object

The following code provides an example on how to download an object named exampleobject.txt in a bucket named examplebucket to D:\localpath. The downloaded object is stored as a local file named examplefile.txt.

require 'aliyun/oss' client = Aliyun::OSS::Client.new( # In this example, the endpoint of the China (Hangzhou) region is used. Specify your actual endpoint. endpoint: 'https://oss-cn-hangzhou.aliyuncs.com', # The AccessKey pair of an Alibaba Cloud account has permissions on all API operations. Using these credentials to perform operations in Object Storage Service (OSS) is a high-risk operation. We recommend that you use a RAM user to call API operations or perform routine O&M. To create a RAM user, log on to the RAM console. access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret') # Specify the bucket name. Example: examplebucket. bucket = client.get_bucket('examplebucket') # Specify the full paths of the local file and object. The full path of the object cannot contain the bucket name. bucket.get_object('exampleobject.txt', :file => 'D:\\localpath\\examplefile.txt')

List objects

The following sample code provides an example on how to list objects stored in a bucket named examplebucket. By default, 100 objects are listed.

require 'aliyun/oss' client = Aliyun::OSS::Client.new( # Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. endpoint: 'https://oss-cn-hangzhou.aliyuncs.com', # The AccessKey pair of an Alibaba Cloud account has permissions on all API operations. Using these credentials to perform operations in OSS is a high-risk operation. We recommend that you use a RAM user to call API operations or perform routine O&M. To create a RAM user, log on to the RAM console. access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret') # Specify the name of the bucket. Example: examplebucket. bucket = client.get_bucket('examplebucket') # List all objects in the bucket. objects = bucket.list_objects objects.each { |o| puts o.key } 

Delete an object

The following sample code provides an example on how to delete an object named exampledir/exampleobject.txt:

require 'aliyun/oss' client = Aliyun::OSS::Client.new( # Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. endpoint: 'https://oss-cn-hangzhou.aliyuncs.com', # The AccessKey pair of an Alibaba Cloud account has permissions on all API operations. Using these credentials to perform operations in OSS is a high-risk operation. We recommend that you use a RAM user to call API operations or perform routine O&M. To create a RAM user, log on to the RAM console. access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret') # Specify the name of the bucket. Example: examplebucket. bucket = client.get_bucket('examplebucket') # Specify the full path of the object. Example: exampledir/exampleobject.txt. The full path cannot contain the bucket name. bucket.delete_object('exampledir/exampleobject.txt') 

References

  • For more information about the API operation that you can call to create a bucket, see PutBucket.

  • For more information about the API operation that you can call to upload an object, see PutObject.

  • For more information about the API operation that you can call to download an object, see GetObject.

  • For more information about the API operation that you can call to list objects, see GetBucket (ListObjects).

  • For more information about the API operation that you can call to delete an object, see DeleteObject.