LibOss.Api.Bucket (lib_oss v0.3.0)

View Source

OSS存储桶操作相关API

提供存储桶的创建、删除、列举、信息获取等功能。

Summary

Functions

创建宏,用于在客户端模块中导入所有存储桶操作函数

调用DeleteBucket删除某个存储空间(Bucket)。

GetBucket (ListObjects)接口用于列举存储空间(Bucket)中所有文件(Object)的信息。

调用GetBucketInfo接口获取某个存储空间(Bucket)的相关信息。

调用GetBucketLocation接口获取存储空间(Bucket)的位置信息。

调用GetBucketStat接口获取指定存储空间(Bucket)的存储容量以及文件(Object)数量。

ListObjectsV2(GetBucketV2)接口用于列举存储空间(Bucket)中所有文件(Object)的信息。

Functions

__using__(opts)

(macro)

创建宏,用于在客户端模块中导入所有存储桶操作函数

delete_bucket(client, bucket)

@spec delete_bucket(module(), LibOss.Typespecs.bucket()) ::
  :ok | {:error, LibOss.Exception.t()}

调用DeleteBucket删除某个存储空间(Bucket)。

Doc: https://help.aliyun.com/document_detail/31973.html

Examples

iex> delete_bucket(to-delete-bucket)
:ok

get_bucket(client, bucket, query_params)

GetBucket (ListObjects)接口用于列举存储空间(Bucket)中所有文件(Object)的信息。

Doc: https://help.aliyun.com/document_detail/31965.html

其中query_params具体细节参考上面链接中请求参数部分

Examples

iex> get_bucket(bucket, %{"prefix" => "test/test"})
{:ok, [
  %{
   "ETag" => ""A5D2B2E40EF7EBA1C788697D31C27A78-3"",
   "Key" => "test/test.txt",
   "LastModified" => "2023-07-09T14:41:08.000Z",
   "Owner" => %{
     "DisplayName" => "1074124462684153",
     "ID" => "1074124462684153"
   },
   "Size" => "409608",
   "StorageClass" => "Standard",
   "Type" => "Multipart"
 },
 %{
   "ETag" => ""5EB63BBBE01EEED093CB22BB8F5ACDC3"",
   "Key" => "test/test_1.txt",
   "LastModified" => "2023-07-09T14:41:08.000Z",
   "Owner" => %{
     "DisplayName" => "1074124462684153",
     "ID" => "1074124462684153"
   },
   "Size" => "11",
   "StorageClass" => "Standard",
   "Type" => "Normal"
 }
]}

get_bucket_info(client, bucket)

@spec get_bucket_info(module(), LibOss.Typespecs.bucket()) ::
  {:ok, LibOss.Typespecs.dict()} | {:error, LibOss.Exception.t()}

调用GetBucketInfo接口获取某个存储空间(Bucket)的相关信息。

Doc: https://help.aliyun.com/document_detail/31968.html

Examples

iex> get_bucket_info(bucket)
{:ok,
 %{
   "BucketInfo" => %{
     "Bucket" => %{
       "AccessControlList" => %{"Grant" => "private"},
       "CreationDate" => "2023-07-07T12:57:30.000Z",
       "ExtranetEndpoint" => "oss-cn-beijing.aliyuncs.com",
       "IntranetEndpoint" => "oss-cn-beijing-internal.aliyuncs.com",
       "Location" => "oss-cn-beijing",
       "Name" => "test-bucket",
       "Owner" => %{"DisplayName" => "1074124462684153", "ID" => "1074124462684153"},
       "StorageClass" => "Standard"
     }
   }
 }}

get_bucket_location(client, bucket)

@spec get_bucket_location(module(), LibOss.Typespecs.bucket()) ::
  {:ok, binary()} | {:error, LibOss.Exception.t()}

调用GetBucketLocation接口获取存储空间(Bucket)的位置信息。

Doc: https://help.aliyun.com/document_detail/31967.html

Examples

iex> get_bucket_location(bucket)
{:ok, "oss-cn-beijing"}

get_bucket_stat(client, bucket)

@spec get_bucket_stat(module(), LibOss.Typespecs.bucket()) ::
  {:ok, LibOss.Typespecs.dict()} | {:error, LibOss.Exception.t()}

调用GetBucketStat接口获取指定存储空间(Bucket)的存储容量以及文件(Object)数量。

Doc: https://help.aliyun.com/document_detail/47572.html

Examples

iex> get_bucket_stat(bucket)
{:ok,
 %{
   "BucketStat" => %{
     "LastModifiedTime" => "1689855033",
     "ObjectCount" => "7",
     "Storage" => "1001100",
     "StandardStorage" => "1001100"
   }
 }}

list_object_v2(client, bucket, query_params)

@spec list_object_v2(module(), LibOss.Typespecs.bucket(), LibOss.Typespecs.params()) ::
  {:ok, [LibOss.Typespecs.dict()]} | {:error, LibOss.Exception.t()}

ListObjectsV2(GetBucketV2)接口用于列举存储空间(Bucket)中所有文件(Object)的信息。

Doc: https://help.aliyun.com/document_detail/187544.html

Examples

iex> list_object_v2(bucket, %{"prefix" => "test/test"})
{:ok,
 [
   %{
     "ETag" => ""A5D2B2E40EF7EBA1C788697D31C27A78-3"",
     "Key" => "test/test.txt",
     "LastModified" => "2023-07-09T14:41:08.000Z",
     "Owner" => %{
       "DisplayName" => "1074124462684153",
       "ID" => "1074124462684153"
     },
     "Size" => "409608",
     "StorageClass" => "Standard",
     "Type" => "Multipart"
   },
   %{
     "ETag" => ""5EB63BBBE01EEED093CB22BB8F5ACDC3"",
     "Key" => "test/test_1.txt",
     "LastModified" => "2023-07-09T14:41:08.000Z",
     "Owner" => %{
       "DisplayName" => "1074124462684153",
       "ID" => "1074124462684153"
     },
     "Size" => "11",
     "StorageClass" => "Standard",
     "Type" => "Normal"
   }
 ]}

put_bucket(client, bucket, storage_class \\ "Standard", data_redundancy_type \\ "LRS", headers \\ [])

@spec put_bucket(
  module(),
  LibOss.Typespecs.bucket(),
  String.t(),
  String.t(),
  LibOss.Typespecs.headers()
) :: :ok | {:error, LibOss.Exception.t()}

调用PutBucket接口创建存储空间(Bucket)。

Doc: https://help.aliyun.com/document_detail/31959.html

Examples

iex> put_bucket(your-new-bucket)
:ok