LibOss.Core.Bucket (lib_oss v0.3.0)
View Source存储桶操作模块
负责:
- 基础操作:put_bucket, delete_bucket
 - 对象列表:get_bucket, list_object_v2
 - 存储桶信息:get_bucket_info, get_bucket_location, get_bucket_stat
 
Summary
Functions
检查存储桶是否存在
列出存储桶中的对象(v1 API)
获取存储桶信息
获取存储桶位置信息
获取存储桶统计信息
获取存储桶中对象的总数(近似值)
列出存储桶中的对象(v2 API)
创建存储桶
获取有效的数据冗余类型列表
获取有效的存储类型列表
验证数据冗余类型是否有效
验证存储类型是否有效
Types
@type err_t() :: {:error, LibOss.Exception.t()}
Functions
@spec bucket_exists?(module(), LibOss.Typespecs.bucket()) :: boolean()
检查存储桶是否存在
参数
- name: Agent进程名称
 - bucket: 存储桶名称
 
返回值
- boolean()
 
示例
iex> LibOss.Core.Bucket.bucket_exists?(MyOss, "my-bucket")
true
  @spec delete_bucket(module(), LibOss.Typespecs.bucket()) :: :ok | err_t()
删除存储桶
参数
- name: Agent进程名称
 - bucket: 存储桶名称
 
返回值
:ok | {:error, Exception.t()}
注意:只能删除空的存储桶
示例
iex> LibOss.Core.Bucket.delete_bucket(MyOss, "my-bucket")
:ok相关文档
@spec get_bucket(module(), LibOss.Typespecs.bucket(), LibOss.Typespecs.params()) :: {:ok, map()} | err_t()
列出存储桶中的对象(v1 API)
参数
- name: Agent进程名称
 - bucket: 存储桶名称
 - query_params: 查询参数
 
查询参数
- prefix: 对象名前缀
 - marker: 起始对象名
 - max-keys: 最大返回数量
 - delimiter: 分隔符
 
返回值
| {:error, Exception.t()}
示例
iex> LibOss.Core.Bucket.get_bucket(MyOss, "my-bucket", %{"prefix" => "photos/"})
{:ok, %{objects: [...], is_truncated: false}}相关文档
@spec get_bucket_info(module(), LibOss.Typespecs.bucket()) :: {:ok, map()} | err_t()
获取存储桶信息
参数
- name: Agent进程名称
 - bucket: 存储桶名称
 
返回值
| {:error, Exception.t()}
返回的map包含:
- name: 存储桶名称
 - location: 数据中心
 - creation_date: 创建时间
 - storage_class: 存储类型
 - owner: 所有者信息
 
示例
iex> LibOss.Core.Bucket.get_bucket_info(MyOss, "my-bucket")
{:ok, %{
  name: "my-bucket",
  location: "oss-cn-hangzhou",
  creation_date: "2023-01-01T00:00:00.000Z",
  storage_class: "Standard"
}}相关文档
@spec get_bucket_location(module(), LibOss.Typespecs.bucket()) :: {:ok, String.t()} | err_t()
获取存储桶位置信息
参数
- name: Agent进程名称
 - bucket: 存储桶名称
 
返回值
| {:error, Exception.t()}
示例
iex> LibOss.Core.Bucket.get_bucket_location(MyOss, "my-bucket")
{:ok, "oss-cn-hangzhou"}相关文档
@spec get_bucket_stat(module(), LibOss.Typespecs.bucket()) :: {:ok, map()} | err_t()
获取存储桶统计信息
参数
- name: Agent进程名称
 - bucket: 存储桶名称
 
返回值
| {:error, Exception.t()}
返回的map包含:
- storage: 存储量统计
 - object_count: 对象数量统计
 - multipart_upload_count: 分片上传任务数量
 
示例
iex> LibOss.Core.Bucket.get_bucket_stat(MyOss, "my-bucket")
{:ok, %{
  storage: 1024000,
  object_count: 100,
  multipart_upload_count: 5
}}相关文档
@spec get_object_count(module(), LibOss.Typespecs.bucket(), String.t()) :: {:ok, non_neg_integer()} | err_t()
获取存储桶中对象的总数(近似值)
参数
- name: Agent进程名称
 - bucket: 存储桶名称
 - prefix: 对象名前缀(可选)
 
返回值
| {:error, Exception.t()}
注意:这是一个近似值,通过分页获取所有对象计算得出
示例
iex> LibOss.Core.Bucket.get_object_count(MyOss, "my-bucket")
{:ok, 1500}
  @spec list_object_v2(module(), LibOss.Typespecs.bucket(), LibOss.Typespecs.params()) :: {:ok, map()} | err_t()
列出存储桶中的对象(v2 API)
参数
- name: Agent进程名称
 - bucket: 存储桶名称
 - query_params: 查询参数
 
查询参数
- prefix: 对象名前缀
 - continuation-token: 继续标记
 - max-keys: 最大返回数量
 - start-after: 起始对象名
 - delimiter: 分隔符
 
返回值
| {:error, Exception.t()}
示例
iex> LibOss.Core.Bucket.list_object_v2(MyOss, "my-bucket", %{"prefix" => "photos/"})
{:ok, %{objects: [...], is_truncated: false}}相关文档
@spec put_bucket( module(), LibOss.Typespecs.bucket(), String.t(), String.t(), LibOss.Typespecs.headers() ) :: :ok | err_t()
创建存储桶
参数
- name: Agent进程名称
 - bucket: 存储桶名称
 - storage_class: 存储类型(可选,默认"Standard")
 - data_redundancy_type: 数据冗余类型(可选,默认"LRS")
 - headers: 可选的HTTP请求头
 
存储类型
- "Standard": 标准存储
 - "IA": 低频访问存储
 - "Archive": 归档存储
 - "ColdArchive": 冷归档存储
 
数据冗余类型
- "LRS": 本地冗余存储
 - "ZRS": 同城冗余存储
 
返回值
:ok | {:error, Exception.t()}
示例
iex> LibOss.Core.Bucket.put_bucket(MyOss, "my-bucket")
:ok
iex> LibOss.Core.Bucket.put_bucket(MyOss, "my-bucket", "IA", "ZRS")
:ok相关文档
@spec valid_redundancy_types() :: [String.t()]
获取有效的数据冗余类型列表
返回值
- [String.t()]
 
@spec valid_storage_classes() :: [String.t()]
获取有效的存储类型列表
返回值
- [String.t()]
 
验证数据冗余类型是否有效
参数
- redundancy_type: 数据冗余类型
 
返回值
:ok | {:error, Exception.t()}
验证存储类型是否有效
参数
- storage_class: 存储类型
 
返回值
:ok | {:error, Exception.t()}