kinu

command module
v0.0.0-...-ce4b01d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 5, 2023 License: MIT Imports: 23 Imported by: 0

README

Kinu

Kinu is the server that resizing images. Inspired by cookpad's image server Tofu.

Status

It's development now for first alpha release.

Dependency

  • ImageMagick >= 6.8.9-9 && < 7.0.0

Installation

# Please to Install the ImageMagick before this
go get github.com/tokubai/kinu

or

docker pull tokubai/kinu:1.0.0.alpha13

Startup

go get
$ export KINU_LOG_LEVEL=info
$ export KINU_RESIZE_ENGINE=ImageMagick
$ export KINU_STORAGE_TYPE=File 
$ export KINU_FILE_DIRECTORY=/tmp/kinu
$ kinu
INFO[0000] setup resize engine                           resize_engine_type=ImageMagick
INFO[0000] setup storage                                 storage_type=File
INFO[0000] [starting kinu on 127.0.0.1:8080]
$ curl http://localhost:8080/version
docker run
$ docker run tokubai/kinu:1.0.0.alpha13
INFO[0000] setup resize engine                           resize_engine_type=ImageMagick
INFO[0000] setup storage                                 storage_type=File
INFO[0000] [starting kinu on 0.0.0.0:80]
$ curl http://localhost/version

Usage

ImageUpload
require 'kinu'
Kinu::Resource.new(:foods, 1).upload(open('/path/to/image.jpg'))
curl
$ curl -X POST -F id=1 -F name=foods -F image=@/path/to/image http://localhost/upload
GetResizedImage
require 'kinu'
require 'open-uri'
uri = Kinu::Resource.new(:foods, 1).uri(width: 280, height: 300) #<URI::HTTP http://localhost/images/foods/w=280,h=300/1.jpg>
open(uri).read
curl
$ curl http://localhost/images/foods/w=280,h=300/1.jpg
UploadToSandbox(Temporary)
require 'kinu'
Kinu::Sandbox.upload(open('/path/to/image.jpg')) #<Kinu::Sandbox:0x007fdf92bdc490 @id="db4f1509-e2f5-40a7-9944-a6b0024f2a24", @name="__sandbox__">
curl
$ curl -X POST -F image=@/path/to/image http://localhost/sandbox
Attach from Sandbox
require 'kinu'
Kinu::Sandbox.upload(open('/path/to/image.jpg')).attach_to(:foods, 1) #<Kinu::Resource:0x007fdf92b44a00 @id="1", @name="foods">
curl
$ curl -X POST -F sandbox_id=db4f1509-e2f5-40a7-9944-a6b0024f2a24 -F name=foods -F id=1 http://localhost/sandbox

Specification

Endpoints

now writing

Image resize query

now writing

Environment variables
name required default value valid value type note
KINU_BIND 127.0.0.1:80 IP:PORT / unix domain socket path / Einhorn(einhorn@[num]) / FileDescripter(fd@[num]) Compliance with the specifications of the goji/bind package.
KINU_DEBUG none true enable pprof
KINU_RESIZE_ENGINE none ImageMagick
KINU_LOG_LEVEL none panic / fatal / error / warning / info / debug
KINU_LOG_FORMAT text ltsv / json / text
KINU_RESIZE_WORKER_MODE none true
KINU_RESIZE_WORKER_MAX_SIZE cpu num * 10 Integer
KINU_RESIZE_WORKER_WAIT_BUFFER KINU_RESIZE_WORKER_SIZE * 3 Integer
KINU_STORAGE_TYPE none File / S3
KINU_FILE_DIRECTORY none directory path When the File has been set in a KINU_STORAGE_TYPE\ you must set this variable.
KINU_S3_REGION none AWS Region When the S3 has been set in a KINU_STORAGE_TYPE\ you must set this variable.
KINU_S3_BUCKET none Amazon S3 bucket When the S3 has been set in a KINU_STORAGE_TYPE\ you must set this variable.
KINU_S3_BUCKET_BASE_PATH none
AWS_ACCESS_KEY_ID none Compliance with the specifications of the aws-sdk-go package.
AWS_SECRET_ACCESS_KEY none Compliance with the specifications of the aws-sdk-go package.
Directory structure of the image storage.

now writing

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/tokubai/kinu

Thanks

Author

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL