Aliyun.Oss.Bucket.Lifecycle (aliyun_oss v3.3.0)

Bucket operations - Lifecycle.

Summary

Functions

DeleteBucketLifecycle - deletes lifecycle rules for a bucket.

GetBucketLifecycle - get the lifecycle rules that are configured for a bucket.

PutBucketLifecycle - configures a lifecycle rule for a bucket.

Functions

delete(config, bucket)

@spec delete(Aliyun.Oss.Config.t(), String.t()) ::
  {:error, Exception.t()} | {:ok, Aliyun.Oss.Client.Response.t()}

DeleteBucketLifecycle - deletes lifecycle rules for a bucket.

Examples

iex> Aliyun.Oss.Bucket.Lifecycle.delete(config, "some-bucket")
{:ok,
%Aliyun.Oss.Client.Response{
  data: "",
  headers: %{
    "connection" => ["keep-alive"],
    "content-length" => ["0"],
    "date" => ["Tue, 08 Jul 2025 02:47:49 GMT"],
    "server" => ["AliyunOSS"],
    "x-oss-request-id" => ["686C0000000000000001C0B2"],
    "x-oss-server-time" => ["53"]
  }
}}
iex> Aliyun.Oss.Bucket.Lifecycle.delete(config, "unknown-bucket")
{:error,
%Aliyun.Oss.Client.Error{
  status: 404,
  code: "NoSuchBucket",
  message: "The specified bucket does not exist.",
  details: %{
    "BucketName" => "unknown-bucket",
    "Code" => "NoSuchBucket",
    "EC" => "0015-00000101",
    "HostId" => "unknown-bucket.oss-cn-shenzhen.aliyuncs.com",
    "Message" => "The specified bucket does not exist.",
    "RecommendDoc" => "https://api.aliyun.com/troubleshoot?q=0015-00000101",
    "RequestId" => "5C38283EC84D1C4471F2F48A"
  }
}}

get(config, bucket)

@spec get(Aliyun.Oss.Config.t(), String.t()) ::
  {:error, Exception.t()} | {:ok, Aliyun.Oss.Client.Response.t()}

GetBucketLifecycle - get the lifecycle rules that are configured for a bucket.

Examples

iex> Aliyun.Oss.Bucket.Lifecycle.get(config, "some-bucket")
{:ok, %Aliyun.Oss.Client.Response{
  data: %{
    "LifecycleConfiguration" => %{
      "Rule" => %{
        "AbortMultipartUpload" => %{"Days" => "1"},
        "Expiration" => %{"Days" => "1"},
        "ID" => "delete objects and parts after one day",
        "Prefix" => "logs/",
        "Status" => "Enabled"
      }
    }
  },
  headers: %{
    "connection" => ["keep-alive"],
    ...
  }
}}

put(config, bucket, lifecycle_config_xml, options \\ [])

@spec put(Aliyun.Oss.Config.t(), String.t(), String.t(), keyword()) ::
  {:error, Exception.t()} | {:ok, Aliyun.Oss.Client.Response.t()}

PutBucketLifecycle - configures a lifecycle rule for a bucket.

Options

  • :headers - Defaults to %{}

Examples

iex> lifecycle_config = ~S[
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration>
  <Rule>
    <ID>delete objects and parts after one day</ID>
    <Prefix>logs/</Prefix>
    <Status>Enabled</Status>
    <Expiration>
      <Days>1</Days>
    </Expiration>
    <AbortMultipartUpload>
      <Days>1</Days>
    </AbortMultipartUpload>
  </Rule>
</LifecycleConfiguration>
]
iex> Aliyun.Oss.Bucket.Lifecycle.put(config, "some-bucket", lifecycle_config)
{:ok, %Aliyun.Oss.Client.Response{
  data: "",
  headers: %{
    "connection" => ["keep-alive"],
    ...
  }
}}