LibOss.Api.Bucket (lib_oss v0.3.0)
View SourceOSS存储桶操作相关API
提供存储桶的创建、删除、列举、信息获取等功能。
Summary
Functions
创建宏,用于在客户端模块中导入所有存储桶操作函数
调用DeleteBucket删除某个存储空间(Bucket)。
GetBucket (ListObjects)接口用于列举存储空间(Bucket)中所有文件(Object)的信息。
调用GetBucketInfo接口获取某个存储空间(Bucket)的相关信息。
调用GetBucketLocation接口获取存储空间(Bucket)的位置信息。
调用GetBucketStat接口获取指定存储空间(Bucket)的存储容量以及文件(Object)数量。
ListObjectsV2(GetBucketV2)接口用于列举存储空间(Bucket)中所有文件(Object)的信息。
调用PutBucket接口创建存储空间(Bucket)。
Functions
创建宏,用于在客户端模块中导入所有存储桶操作函数
@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
@spec get_bucket(module(), LibOss.Typespecs.bucket(), LibOss.Typespecs.params()) :: {:ok, [LibOss.Typespecs.dict()]} | {:error, LibOss.Exception.t()}
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"
}
]}
@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"
}
}
}}
@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"}
@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"
}
}}
@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"
}
]}
@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