Skip to content

Latest commit

 

History

History
90 lines (80 loc) · 2.96 KB

README.ja.md

File metadata and controls

90 lines (80 loc) · 2.96 KB

fanlin

Circle CI MIT License

English | 日本語

概要

fanlinはGo言語で作られた軽量画像プロキシです. Amazon S3と外部HTTPサーバー上の画像をリアルタイムで加工することができます.

環境

  • 確認済み
    • go1.4
    • go1.5
    • go1.6

OS X の環境構築

master pushの悲劇を防ぐために

ここを参考に設定すること

事前に入れるもの

Linux用にクロスコンパイルする

go1.5の場合
1.4はやり方が変わります

$ GOOS=linux GOARCH=amd64 go build github.com/livesense-inc/fanlin/cmd/fanlin

サーバーに配布するもの

ビルドして作った実行ファイル
設定ファイル

API

getパラメータに値を渡して操作する
w画像の横幅
h画像の縦幅
色を指定しない時whを指定した時は小さい方に合わせて縮尺を変更する
この時アスペクト比は維持する
また一方が0の時は0ではない値を基準に縮尺を変更する
w及びh0であるときは元のサイズで表示する
あまりにも大きいサイズが指定された時は設定ファイルにかかれている上限の大きさで拡大する
rgbで色を指定した場合whで指定された大きさの画像を生成する
この時画像のアスペクト比が違うときは隙間を指定した色で塗りつぶす quality0から100までの数値を指定した場合その数値にクオリティを設定した画像を生成する それ以外の数値が指定された場合はjpeg.DefaultQualityの値(75)が指定される croptrueが指定された場合whで指定した比に合わせて、画像中央を基準としてはみ出した部分クロッピングして画像を生成する 例:

http://localhost:8080/path/to/image/?h=400&w=400&rgb=100,100,100&quality=80&crop=true

testing

$ 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"
            }
        }
    ]
}