开发者社区> 问答> 正文

Go-SDK之如何实现 管理生命周期?

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

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

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

提示:
  • 管理生命周期的示例代码在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)
    }

展开
收起
青衫无名 2017-10-19 14:35:05 1852 0
0 条回答
写回答
取消 提交回答
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Go语言路上踩过的坑 立即下载
gohbase :HBase go客户端 立即下载
Go构建日请求千亿级微服务实践 立即下载