全部产品
Search
文档中心

对象存储 OSS:Ruby删除文件

更新时间:Dec 20, 2023

您可以根据需要删除单个文件(Object)、删除指定的多个文件、删除指定前缀的文件或者删除指定目录及目录下的所有文件。

警告
  • Object删除后无法恢复,请谨慎操作。
  • 为避免影响OSS-HDFS服务的正常使用或者引发数据丢失的风险,在开通了OSS-HDFS服务的Bucket中,禁止删除OSS-HDFS的数据存储目录.dlsdata/下的任意Object。

删除单个文件

以下代码用于删除examplebucket中的exampleobject.txt文件。

require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
  # 填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
  endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
  # 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
  access_key_id: ENV['OSS_ACCESS_KEY_ID'],
  access_key_secret: ENV['OSS_ACCESS_KEY_SECRET']
)
# 填写Bucket名称,例如examplebucket。
bucket = client.get_bucket('examplebucket')
# 填写文件完整路径,例如exampledir/exampleobject.txt。文档完整路径中不能包含Bucket名称。
bucket.delete_object('exampledir/exampleobject.txt')            

批量删除文件

以下代码用于删除指定名称的多个文件。

require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
  # 填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
  endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
  # 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
  access_key_id: ENV['OSS_ACCESS_KEY_ID'],
  access_key_secret: ENV['OSS_ACCESS_KEY_SECRET']
)
# 填写Bucket名称,例如examplebucket。
bucket = client.get_bucket('examplebucket')
# 填写需要删除的多个文件完整路径。文件完整路径中不能包含Bucket名称。
objs = ['my-object-1', 'my-object-2']
result = bucket.batch_delete_objects(objs)
# 默认返回删除成功的文件。
puts result #['my-object-1', 'my-object-2']

objs = ['my-object-3', 'my-object-4']
result = bucket.batch_delete_objects(objs, :quiet => true)
# 不返回删除的结果。
puts result #[]            

相关文档