diff --git a/README.md b/README.md index ad4adfa1f527287954d20ec1418e816e9d399442..ae15686d3a88d753dd325f8aa08056b851c6d5cb 100644 --- a/README.md +++ b/README.md @@ -1,227 +1,88 @@ # ElixirBceSdk -Baidu Could Storage SDK for Elixir +ElixirBceSdk 是一个用于访问百度云服务(BCE)的 Elixir SDK,支持对象存储服务(BOS)、云监控服务(BCM)等功能。 -## Support -- BOS - - [X] Bucket API - - [X] Object API - - [ ] Coming soon +## 支持 -- BCM - - [X] get_metric_data - - [ ] put_metric_data +如果您在使用过程中遇到任何问题,可以通过以下方式寻求帮助: -- Coming soon +- 查看文档 +- 提交 issue 到 [GitHub 仓库](https://github.com/your-repo-url) +## 安装 -## Installation - -If [available in Hex](https://hex.pm/docs/publish), the package can be installed -by adding `elixir_bce_sdk` to your list of dependencies in `mix.exs`: +在 `mix.exs` 文件中添加 `elixir_bce_sdk` 到依赖项中: ```elixir -def deps do +defp deps do [ - {:elixir_bce_sdk, "~> 0.2"} + {:elixir_bce_sdk, "~> 0.1.0"} ] end ``` -Then run `$ mix deps.get` -- Config the BOS Credentials -```elixir -# config/config.exs +然后运行 `mix deps.get` 来安装依赖。 -config :elixir_bce_sdk, - access_key_id: "", - secret_access_key: "", - bos_endpoint: "", - bcm_user_id: "", - bcm_endpoint: "" - -config :elixir_bce_sdk, ElixirBceSdk.Client, - timeout: 30_000 -``` +## 配置 -Or if you want to config them via run-time system environment variables: +在 `config/config.exs` 中配置您的 BCE 凭证: ```elixir -# config/config.exs - config :elixir_bce_sdk, - access_key_id: {:system, "BOS_ACCESS_KEY_ID"}, - secret_access_key: {:system, "BOS_SECRET_ACCESS_KEY"}, - bos_endpoint: {:system, "BOS_ENDPOINT"}, - bcm_user_id: {:system, "BCM_USER_ID"}, - bcm_endpoint: {:system, "BCM_ENDPOINT"} - -config :elixir_bce_sdk, ElixirBceSdk.Client, - timeout: {:system, "TIMEOUT"} + access_key_id: "your-access-key-id", + secret_access_key: "your-secret-access-key" ``` -Documentation can be generated with [ExDoc](https://github.com/elixir-lang/ex_doc) -and published on [HexDocs](https://hexdocs.pm). Once published, the docs can -be found at [https://hexdocs.pm/elixir_bce_sdk](https://hexdocs.pm/elixir_bce_sdk). +## 使用 -## Usage +### Bucket API -### Bucket Api +以下是一些常见的 Bucket 操作示例: -List Buckets ```elixir +# 列出所有 Bucket ElixirBceSdk.Bos.Bucket.list_buckets() -``` - -Create Bucket -```elixir -ElixirBceSdk.Bos.Bucket.create_bucket("bucket-name") -``` -Delete Bucket -```elixir -ElixirBceSdk.Bos.Bucket.delete_bucket("bucket-name") -``` +# 创建一个新的 Bucket +ElixirBceSdk.Bos.Bucket.create_bucket("my-bucket") -Check Bucket is exist? -```elixir -ElixirBceSdk.Bos.Bucket.bucket_exist?("bucket-name") -``` +# 删除一个 Bucket +ElixirBceSdk.Bos.Bucket.delete_bucket("my-bucket") -Get Bucket location -```elixir -ElixirBceSdk.Bos.Bucket.get_bucket_location("bucket-name") -# => {:ok, 200, %{"locationConstraint" => "su"}} +# 获取 Bucket 的位置 +ElixirBceSdk.Bos.Bucket.get_bucket_location("my-bucket") ``` -Get Access Control Level of Bucket -```elixir -ElixirBceSdk.Bos.Bucket.get_bucket_acl("bucket-name") -``` +### Objects API -Set Access Control Level of Bucket by body +以下是一些常见的对象操作示例: ```elixir -acl = [ - %{ - "grantee" => [ - %{ "id" => "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" }, - %{ "id" => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" } - ], - "permission" => ["FULL_CONTROL"] - } -] -ElixirBceSdk.Bos.Bucket.set_bucket_acl("bucket_name", acl) -``` +# 获取对象 +ElixirBceSdk.Bos.Object.get_object("my-bucket", "my-object") -Set Access Control Level of Bucket by headers +# 上传对象 +ElixirBceSdk.Bos.Object.put_object_from_string("my-bucket", "my-object", "Hello, World!") -```elixir -ElixirBceSdk.Bos.Bucket.set_bucket_canned_acl("bucket-name", "public-read") +# 删除对象 +ElixirBceSdk.Bos.Object.delete_object("my-bucket", "my-object") ``` -Get Bucket Lifecycle +### BCM API -```elixir -ElixirBceSdk.Bos.Bucket.get_bucket_lifecycle("bucket-name") -``` +默认获取最近 15 分钟范围的指标数据,`period_in_second` 默认为 60。更多信息请查看: -Put Bucket Lifecycle ```elixir -rule = [ - %{ - "id" => "rule-id", - "status" => "enabled", - "resource" => ["bucket/prefix/*"], - "condition" => %{ - "time" => %{ - "dateGreaterThan" => "2016-09-07T00:00:00Z" - } - }, - "action" => %{ - "name" => "DeleteObject" - } - } -] -ElixirBceSdk.Bos.Bucket.put_bucket_lifecycle("bucket-name", rule) +h ElixirBceSdk.Bcm.Client.get_metric_data ``` -Delete Bucket Lifecycle -```elixir -ElixirBceSdk.Bos.Bucket.delete_bucket_lifecycle("bucket-name") -``` +示例: -Get Bucket Storageclass ```elixir -ElixirBceSdk.Bos.Bucket.get_bucket_storageclass("bucket-name") +# 获取指标数据 +ElixirBceSdk.Bcm.Client.get_metric_data("scope", "metric_name", %{"dimension" => "value"}) ``` -Put Bucket Storageclass -```elixir -ElixirBceSdk.Bos.Bucket.put_bucket_storageclass("bucket-name", "COLD") -``` +## 许可证 - -### Objects Api - -Get Object Information of Bucket -```elixir -ElixirBceSdk.Bos.Bucket.list_objects("bucket-name") -``` - -Get object of Bucket - -```elixir -ElixirBceSdk.Bos.Object.get_object("bucket-name", "object-key") -``` - -Get object to file -```elixir -ElixirBceSdk.Bos.Object.get_object_to_file("bucket-name", "object-key", "path/to/save") -``` - -Get mete of object -```elixir -ElixirBceSdk.Bos.Object.get_object_meta_data("bucket-name", "object-key") -``` - -Create object and put content of string to the object -```elixir -ElixirBceSdk.Bos.Object.put_object_from_string("bucket-name", "object-key", "string data") -``` - -Put object and put content of file to the object -```elixir -ElixirBceSdk.Bos.Object.put_object_from_file("bucket-name", "object-key", "path/to/file") -``` - -Delete Object -```elixir -ElixirBceSdk.Bos.Object.delete_object("bucket-name", "object-key") -``` - -Get object acl -```elixir -ElixirBceSdk.Bos.Object.get_object_acl("bucket-name", "object-key") -``` - -Set object acl by headers -```elixir -ElixirBceSdk.Bos.Object.set_object_canned_acl("bucket-name", "object-key", "public-read") -``` - -Delete object acl -```elixir -ElixirBceSdk.Bos.Object.delete_object_acl("bucket-name", "object-key") -``` - -See the [bos directory](lib/bos) for other features - -### BCM Api - -Get metric data -```elixir -# default get last 15 minues range metric data and `period_in_second` is 60 -# please use `h ElixirBceSdk.Bcm.Client.get_metric_data` to know more -ElixirBceSdk.Bcm.Client.get_metric_data("BCE_BOS", "BucketObjectCount", "BucketId:maven-mirror") -``` +本项目采用 MIT 许可证。详情请查看 [LICENSE](LICENSE) 文件。 \ No newline at end of file