全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
对象存储 OSS

管理生命周期

更新时间:2017-06-07 13:26:11

OSS允许用户对Bucket设置生命周期规则,以自动淘汰过期掉的文件,节省存储 空间。用户可以同时设置多条规则,一条规则包含:

  • 规则ID,用于标识一条规则,不能重复
  • 受影响的文件前缀,此规则只作用于符合前缀的文件
  • 过期时间,有两种指定方式:
    1. 指定距文件最后修改时间N天过期
    2. 指定在具体的某一天过期,即在那天之后符合前缀的文件将会过期,而 不论文件的最后修改时间。不推荐使用。
  • 是否生效

更多关于生命周期的内容请参考 文件生命周期

提示:

  • 管理生命周期的示例代码在sample/bucket_lifecycle.go

设置生命周期规则

通过Client.SetBucketLifecycle来设置生命周期规则:

    import "github.com/aliyun/aliyun-oss-go-sdk/oss"

    client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
    if err != nil {
        // HandleError(err)
    }

    // id:"rule1", enable:true, prefix:"foo/", expiry:Days 3
    rule1 := oss.BuildLifecycleRuleByDays("rule1", "foo/", true, 3)
    // id:"rule2", enable:false, prefix:"bar/", expiry:Date 2016/1/1
    rule2 := oss.BuildLifecycleRuleByDate("rule2", "bar/", true, 2016, 1, 1)
    rules := []oss.LifecycleRule{rule1, rule2}

    err = client.SetBucketLifecycle("my-bucket", rules)
    if err != nil {
        // HandleError(err)
    }

查看生命周期规则

通过Client.GetBucketLifecycle来查看生命周期规则:

    import "fmt"
    import "github.com/aliyun/aliyun-oss-go-sdk/oss"

    client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
    if err != nil {
        // HandleError(err)
    }

    lcRes, err := client.GetBucketLifecycle("my-bucket")
    if err != nil {
        // HandleError(err)
    }
    fmt.Println("Lifecycle Rules:", lcRes.Rules)

清空生命周期规则

通过Client.DeleteBucketLifecycle设置一个空的Rule数组来清空生命周期规则:

    import "github.com/aliyun/aliyun-oss-go-sdk/oss"

    client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
    if err != nil {
        // HandleError(err)
    }

    err = client.DeleteBucketLifecycle("my-bucket")
    if err != nil {
        // HandleError(err)
    }
本文导读目录