下面介绍如何使用OSS Ruby SDK来访问OSS服务,包括查看Bucket列表、查看文件列表、上传文件、下载文件和删除文件。

为了方便使用,下面的操作都是在Ruby的交互式命令行irb中进行。

初始化Client

在命令行中输入irb并回车。

在Ruby的交互式命令行模式下,输入require引入SDK包。

> require 'aliyun/oss'
=> true
说明 在接下来的演示中, >符号后面的内容是用户输入的命令, =>后面的内容是程序返回的内容。

接下来创建Client:

> client = Aliyun::OSS::Client.new(
>   endpoint: 'endpoint',
>   access_key_id: 'AccessKeyId',
>   access_key_secret: 'AccessKeySecret')
=> #<Aliyun::OSS::Client...

将其中的参数替换成您实际的endpoint、AccessKeyId和AccessKeySecret。

查看Bucket列表

通过以下命令查看Bucket列表:

> buckets = client.list_buckets
=> #<Enumerator...
> buckets.each { |b| puts b.name }
=> bucket-1
=> bucket-2
=> ...

如果Bucket列表为空,则可以用以下命令创建一个Bucket:

> client.create_bucket('my-bucket')
=> true
说明
  • Bucket的命名规范请查看OSS 基本概念
  • Bucket名字不能与OSS服务中其他用户已有的Bucket重复,所以你需要选择一个独特的Bucket名字以避免创建失败。

查看文件列表

通过以下命令查看Bucket中的文件列表:

> bucket = client.get_bucket('my-bucket')
=> #<Aliyun::OSS::Bucket...
> objects = bucket.list_objects
=> #<Enumerator...
> objects.each { |obj| puts obj.key }
=> object-1
=> object-2
=> ...

上传文件

通过以下命令向Bucket中上传一个文件:

> bucket.put_object('my-object', :file => 'local-file')
=> true

其中local-file是需要上传的本地文件的路径。上传成功后,可以通过list_objects来查看:

> objects = bucket.list_objects
=> #<Enumerator...
> objects.each { |obj| puts obj.key }
=> my-object
=> ...

下载文件

通过以下命令从Bucket中下载一个文件:

> bucket.get_object('my-object', :file => 'local-file')
=> #<Aliyun::OSS::Object...

其中local-file是文件保存的路径。下载成功后,可以打开文件查看其内容。

删除文件

通过以下命令从Bucket中删除一个文件:

> bucket.delete_object('my-object')
=> true

删除文件后可以通过list_objects来查看文件确实已经被删除:

> objects = bucket.list_objects
=> #<Enumerator...
> objects.each { |obj| puts obj.key }
=> object-1
=> ...

了解更多