README.md

# AliyunOss

[![Build Status](https://semaphoreci.com/api/v1/ug0/aliyun_oss/branches/master/shields_badge.svg)](https://semaphoreci.com/ug0/aliyun_oss)
[![Hex.pm](https://img.shields.io/hexpm/v/aliyun_oss.svg)](https://hex.pm/packages/aliyun_oss)

阿里云对象存储(OSS)API

## Installation

Add `aliyun_oss` to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [
    {:aliyun_oss, "~> 0.1.0"}
  ]
end
```


## Configuration
```elixir
config :aliyun_oss,
  endpoint: "oss-cn-shenzhen.aliyuncs.com",
  access_key_id: "ALIYUN_ACCESS_KEY_ID",
  access_key_secret: "ALIYUN_ACCESS_KEY_SECRET"
```

## **Warning**
**This package is unstable until v1.0 is out. Before that, new minor versions might bring breaking changes. For example, v0.2.0 might break existing APIs in v0.1.x, but 0.2.1 won't break 0.2.0.**


## Roadmap

### Official Interfaces
[参考阿里云官方文档](https://help.aliyun.com/document_detail/31948.html?spm=a2c4g.11186623.6.1037.520869cbKcHFcL)

- [x] **Service**

  - [x] GetService	得到该账户下所有Bucket

- [ ] Bucket

  - [ ] Put Bucket	创建Bucket
  - [ ] Put Bucket ACL	设置Bucket访问权限
  - [ ] Put Bucket Logging	开启Bucket日志
  - [ ] Put Bucket Website	设置Bucket为静态网站托管模式
  - [ ] Put Bucket Referer	设置Bucket的防盗链规则
  - [ ] Put Bucket Lifecycle	设置Bucket中Object的生命周期规则
  - [x] Get Bucket Acl	获得Bucket访问权限
  - [x] Get Bucket Location	获得Bucket所属的数据中心位置信息
  - [x] Get Bucket Logging	查看Bucket的访问日志配置情况
  - [x] Get Bucket Website	查看Bucket的静态网站托管状态
  - [x] Get Bucket Referer	查看Bucket的防盗链规则
  - [x] Get Bucket Lifecycle	查看Bucket中Object的生命周期规则
  - [ ] Delete Bucket	删除Bucket
  - [ ] Delete Bucket Logging	关闭Bucket访问日志记录功能
  - [ ] Delete Bucket Website	关闭Bucket的静态网站托管模式
  - [ ] Delete Bucket Lifecycle	删除Bucket中Object的生命周期规则
  - [x] Get Bucket(List Object)	获得Bucket中所有Object的信息
  - [x] Get Bucket Info	获取Bucket信息

- [ ] Object

  - [ ] Put Object	上传object
  - [ ] Copy Object	拷贝一个object成另外一个object
  - [x] Get Object	获取Object
  - [ ] Delete Object	删除Object
  - [ ] Delete Multiple Objects	删除多个Object
  - [x] Head Object	获得Object的meta信息
  - [ ] Post Object	使用Post上传Object
  - [ ] Append Object	在Object尾追加上传数据
  - [ ] Put Object ACL	设置Object ACL
  - [x] Get Object ACL	获取Object ACL信息
  - [ ] Callback	上传回调


- [ ] Multipart Upload

  - [ ] Initiate Multipart Upload	初始化MultipartUpload事件
  - [ ] Upload Part	分块上传文件
  - [ ] Upload Part Copy	分块复制上传文件
  - [ ] Complete Multipart Upload	完成整个文件的Multipart Upload上传
  - [ ] Abort Multipart Upload	取消Multipart Upload事件
  - [ ] List Multipart Uploads	罗列出所有执行中的Multipart Upload事件
  - [ ] List Parts	罗列出指定Upload ID所属的所有已经上传成功Part


- [ ] CORS
  - [ ] Put Bucket cors	在指定Bucket设定一个CORS的规则
  - [ ] Get Bucket cors	获取指定的Bucket目前的CORS规则
  - [ ] Delete Bucket cors	关闭指定Bucket对应的CORS功能并清空所有规则
  - [ ] Option Object	跨域访问preflight请求

### Documentation(WIP)
[https://hexdocs.pm/aliyun_oss](https://hexdocs.pm/aliyun_oss)

### Improvements