English | 日本語
fanlinはGo言語で作られた軽量画像プロキシです. Amazon S3と外部HTTPサーバー上の画像をリアルタイムで加工することができます.
- 確認済み
- go1.4
- go1.5
- go1.6
go1.5の場合
1.4はやり方が変わります
$ GOOS=linux GOARCH=amd64 go build github.com/livesense-inc/fanlin/cmd/fanlin
ビルドして作った実行ファイル
設定ファイル
getパラメータに値を渡して操作する
w
画像の横幅
h
画像の縦幅
色を指定しない時w
とh
を指定した時は小さい方に合わせて縮尺を変更する
この時アスペクト比は維持する
また一方が0
の時は0
ではない値を基準に縮尺を変更する
w
及びh
が0
であるときは元のサイズで表示する
あまりにも大きいサイズが指定された時は設定ファイルにかかれている上限の大きさで拡大する
rgb
で色を指定した場合w
とh
で指定された大きさの画像を生成する
この時画像のアスペクト比が違うときは隙間を指定した色で塗りつぶす
quality
で0
から100
までの数値を指定した場合その数値にクオリティを設定した画像を生成する
それ以外の数値が指定された場合はjpeg.DefaultQuality
の値(75
)が指定される
crop
でtrue
が指定された場合w
とh
で指定した比に合わせて、画像中央を基準としてはみ出した部分クロッピングして画像を生成する
例:
http://localhost:8080/path/to/image/?h=400&w=400&rgb=100,100,100&quality=80&crop=true
$ go test -cover ./...
だいたいこんな感じでかけます
{
"port": 8080,
"max_width": 1000,
"max_height": 1000,
"404_img_path": "/path/to/404/image",
"access_log_path": "/path/to/access/log",
"error_log_path": "/path/to/error/log",
"providers": [
{
"alias/0" : {
"type" : "web",
"src" : "http://aaa.com/bbb"
}
},
{
"alias/1" : {
"type" : "web",
"src" : "https://ccc.com"
}
},
{
"alias/3" : {
"type" : "s3",
"src" : "s3://bucket/path",
"region" : "ap-northeast-1"
}
}
]
}