LibOss.Core.Object (lib_oss v0.3.0)

View Source

对象操作模块

负责基础对象操作:

  • 基础对象操作:put_object, get_object, delete_object, copy_object
  • 追加写:append_object
  • 元数据:head_object, get_object_meta
  • 批量删除:delete_multiple_objects

Summary

Types

err_t()

@type err_t() :: {:error, LibOss.Exception.t()}

Functions

append_object(name, bucket, object, since, data, headers \\ [])

追加写对象

参数

  • name: Agent进程名称
  • bucket: 存储桶名称
  • object: 对象名称
  • since: 追加位置
  • data: 追加的数据
  • headers: 可选的HTTP请求头

返回值

  • :ok | {:error, Exception.t()}

示例

iex> LibOss.Core.Object.append_object(MyOss, "my-bucket", "my-object", 0, "Hello")
:ok

copy_object(name, bucket, object, source_bucket, source_object, headers \\ [])

复制对象

参数

  • name: Agent进程名称
  • bucket: 目标存储桶名称
  • object: 目标对象名称
  • source_bucket: 源存储桶名称
  • source_object: 源对象名称
  • headers: 可选的HTTP请求头

返回值

  • :ok | {:error, Exception.t()}

示例

iex> LibOss.Core.Object.copy_object(MyOss, "dest-bucket", "dest-object", "src-bucket", "src-object")
:ok

delete_multiple_objects(name, bucket, objects)

@spec delete_multiple_objects(module(), LibOss.Typespecs.bucket(), [
  LibOss.Typespecs.object()
]) ::
  :ok | err_t()

批量删除对象

参数

  • name: Agent进程名称
  • bucket: 存储桶名称
  • objects: 对象名称列表

返回值

  • :ok | {:error, Exception.t()}

示例

iex> LibOss.Core.Object.delete_multiple_objects(MyOss, "my-bucket", ["obj1", "obj2", "obj3"])
:ok

delete_object(name, bucket, object)

@spec delete_object(module(), LibOss.Typespecs.bucket(), LibOss.Typespecs.object()) ::
  :ok | err_t()

删除对象

参数

  • name: Agent进程名称
  • bucket: 存储桶名称
  • object: 对象名称

返回值

  • :ok | {:error, Exception.t()}

示例

iex> LibOss.Core.Object.delete_object(MyOss, "my-bucket", "my-object")
:ok

get_object(name, bucket, object, req_headers \\ [])

获取对象

参数

  • name: Agent进程名称
  • bucket: 存储桶名称
  • object: 对象名称
  • req_headers: 可选的HTTP请求头

返回值

  • | {:error, Exception.t()}

示例

iex> LibOss.Core.Object.get_object(MyOss, "my-bucket", "my-object")
{:ok, "Hello World"}

get_object_meta(name, bucket, object)

@spec get_object_meta(module(), LibOss.Typespecs.bucket(), LibOss.Typespecs.object()) ::
  {:ok, LibOss.Typespecs.dict()} | err_t()

获取对象元数据

参数

  • name: Agent进程名称
  • bucket: 存储桶名称
  • object: 对象名称

返回值

  • | {:error, Exception.t()}

示例

iex> LibOss.Core.Object.get_object_meta(MyOss, "my-bucket", "my-object")
{:ok, %{"content-length" => "11", "etag" => ""5d41402abc4b2a76b9719d911017c592""}}

get_object_size(name, bucket, object)

@spec get_object_size(module(), LibOss.Typespecs.bucket(), LibOss.Typespecs.object()) ::
  {:ok, non_neg_integer()} | err_t()

获取对象大小

参数

  • name: Agent进程名称
  • bucket: 存储桶名称
  • object: 对象名称

返回值

  • | {:error, Exception.t()}

示例

iex> LibOss.Core.Object.get_object_size(MyOss, "my-bucket", "my-object")
{:ok, 1024}

head_object(name, bucket, object, headers \\ [])

获取对象头部信息

参数

  • name: Agent进程名称
  • bucket: 存储桶名称
  • object: 对象名称
  • headers: 可选的HTTP请求头

返回值

  • | {:error, Exception.t()}

示例

iex> LibOss.Core.Object.head_object(MyOss, "my-bucket", "my-object")
{:ok, %{"content-length" => "11", "content-type" => "text/plain"}}

object_exists?(name, bucket, object)

@spec object_exists?(module(), LibOss.Typespecs.bucket(), LibOss.Typespecs.object()) ::
  boolean()

检查对象是否存在

参数

  • name: Agent进程名称
  • bucket: 存储桶名称
  • object: 对象名称

返回值

  • boolean()

示例

iex> LibOss.Core.Object.object_exists?(MyOss, "my-bucket", "my-object")
true

put_object(name, bucket, object, data, headers \\ [])

上传对象

参数

  • name: Agent进程名称
  • bucket: 存储桶名称
  • object: 对象名称
  • data: 对象数据
  • headers: 可选的HTTP请求头

返回值

  • :ok | {:error, Exception.t()}

示例

iex> LibOss.Core.Object.put_object(MyOss, "my-bucket", "my-object", "Hello World")
:ok