Skip to content

tony612/qiniu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Qiniu

Build Status Coverage Status Inline docs hex.pm version

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)