LibOss.Core.Tagging (lib_oss v0.3.0)
View Source标签管理模块
负责:
- 对象标签:put_object_tagging, get_object_tagging, delete_object_tagging
 - 标签验证和处理
 
Summary
Types
@type err_t() :: {:error, LibOss.Exception.t()}
Functions
@spec delete_object_tagging( module(), LibOss.Typespecs.bucket(), LibOss.Typespecs.object() ) :: :ok | err_t()
删除对象标签
参数
- name: Agent进程名称
 - bucket: 存储桶名称
 - object: 对象名称
 
返回值
:ok | {:error, Exception.t()}
示例
iex> LibOss.Core.Tagging.delete_object_tagging(MyOss, "my-bucket", "my-object")
:ok相关文档
@spec get_object_tagging( module(), LibOss.Typespecs.bucket(), LibOss.Typespecs.object() ) :: {:ok, [map()]} | err_t()
获取对象标签
参数
- name: Agent进程名称
 - bucket: 存储桶名称
 - object: 对象名称
 
返回值
| {:error, Exception.t()}
返回标签列表,每个标签包含key和value字段
示例
iex> LibOss.Core.Tagging.get_object_tagging(MyOss, "my-bucket", "my-object")
{:ok, [%{key: "env", value: "prod"}, %{key: "team", value: "backend"}]}相关文档
@spec get_tag_count(module(), LibOss.Typespecs.bucket(), LibOss.Typespecs.object()) :: {:ok, non_neg_integer()} | err_t()
获取对象标签数量
参数
- name: Agent进程名称
 - bucket: 存储桶名称
 - object: 对象名称
 
返回值
| {:error, Exception.t()}
示例
iex> LibOss.Core.Tagging.get_tag_count(MyOss, "my-bucket", "my-object")
{:ok, 2}
  @spec has_tags?(module(), LibOss.Typespecs.bucket(), LibOss.Typespecs.object()) :: boolean()
检查对象是否有标签
参数
- name: Agent进程名称
 - bucket: 存储桶名称
 - object: 对象名称
 
返回值
- boolean()
 
示例
iex> LibOss.Core.Tagging.has_tags?(MyOss, "my-bucket", "my-object")
true
  @spec put_object_tagging( module(), LibOss.Typespecs.bucket(), LibOss.Typespecs.object(), LibOss.Typespecs.dict() | keyword() ) :: :ok | err_t()
设置对象标签
参数
- name: Agent进程名称
 - bucket: 存储桶名称
 - object: 对象名称
 - tags: 标签map或关键字列表
 
标签限制
- 最多10个标签
 - 标签键最长128字符
 - 标签值最长256字符
 
返回值
:ok | {:error, Exception.t()}
示例
iex> LibOss.Core.Tagging.put_object_tagging(MyOss, "my-bucket", "my-object", %{"env" => "prod", "team" => "backend"})
:ok
iex> LibOss.Core.Tagging.put_object_tagging(MyOss, "my-bucket", "my-object", [{"env", "prod"}, {"team", "backend"}])
:ok相关文档
@spec tag_limits() :: map()
获取标签限制信息
返回值
- map()
 
示例
iex> LibOss.Core.Tagging.tag_limits()
%{
  max_tags: 10,
  max_key_length: 128,
  max_value_length: 256
}
  @spec update_object_tagging( module(), LibOss.Typespecs.bucket(), LibOss.Typespecs.object(), LibOss.Typespecs.dict() | keyword() ) :: :ok | err_t()
更新对象标签(合并现有标签)
参数
- name: Agent进程名称
 - bucket: 存储桶名称
 - object: 对象名称
 - new_tags: 新的标签map或关键字列表
 
返回值
:ok | {:error, Exception.t()}
该函数会先获取现有标签,然后与新标签合并后更新
示例
iex> LibOss.Core.Tagging.update_object_tagging(MyOss, "my-bucket", "my-object", %{"version" => "1.0"})
:ok
  @spec validate_tags(LibOss.Typespecs.dict() | keyword()) :: :ok | {:error, LibOss.Exception.t()}
验证标签是否符合OSS规范
参数
- tags: 标签map或关键字列表
 
返回值
:ok | {:error, Exception.t()}
验证规则
- 标签数量不超过10个
 - 标签键长度不超过128字符
 - 标签值长度不超过256字符
 - 标签键不能为空
 
示例
iex> LibOss.Core.Tagging.validate_tags(%{"key1" => "value1"})
:ok
iex> LibOss.Core.Tagging.validate_tags(%{})
:ok