Home

Awesome

Qiniu

Build Status Coverage Status Inline docs hex.pm version

Qiniu sdk for Elixir

Installation and config

# mix.exs
def application do
  [applications: [:qiniu]]
end

defp deps do
  [{:qiniu, "~> 0.3.0"}]
end

Then run $ mix deps.get

# 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.