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.