Awesome
Qiniu
Qiniu sdk for Elixir
Installation and config
- Add qiniu as dependence and application
# mix.exs
def application do
[applications: [:qiniu]]
end
defp deps do
[{:qiniu, "~> 0.3.0"}]
end
Then run $ mix deps.get
- Config the Qiniu API keys
# config/prod.secret.exs (You'd better not add this file to git)
config :qiniu, Qiniu,
access_key: "key",
secret_key: "secret"
Usage
Upload
Get the token for uploading
policy = Qiniu.PutPolicy.build("scope")
uptoken = Qiniu.Auth.generate_uptoken(policy)
Upload a local file in server
put_policy = Qiniu.PutPolicy.build("books")
Qiniu.Uploader.upload put_policy, "~/cool.jpg", key: "cool.jpg"
Chunked upload
put_policy = Qiniu.PutPolicy.build("books")
Qiniu.ChunkUpload.chunk_upload put_policy, "~/cool.jpg", key: "cool.jpg"
Download
Get the authorized download url
Qiniu.Auth.authorize_download_url(url, 3600)
Media Processing
AV transcoding
Qiniu.Fop.AV.trans_fops([avthumb: "mp4", s: "640x360", saveas: "bucket1:test.mp4"])
See the doc for other features
TODO
There're many small features, implements of which are bothering. And some of them seem not very useful. So I don't plan to implement all of them until I find some useful. You can create issues when you need some features or just implement them by yourself.
- Uploading
- 直传文件(upload)
- 创建块(mkblk)
- 上传片(bput)
- 创建文件(bput)
- Resource management
- 获取资源信息(stat)
- 复制资源(copy)
- 移动资源(move)
- 删除资源(delete)
- 批量操作(batch)
- 列举资源(list)
- 抓取资源(fetch)
- 更新镜像资源(prefetch)
- 修改元信息(chgm)
- Data handling
- Image
- 图片基本信息(info)
- 图片EXIF信息(exif)
- 水印(watermark)
- 图片主色调(avg_hue)
- 资源下载二维码(qrcode)
- Image