WIP: FrostFS HTTP Gateway
Find a file
Evgeniy Kulikov 65a2da6995
Add constants with default values
- default values constants
- add conn_ttl `GW_CONN_TTL=duration` (gRPC connection time to live)
2020-02-19 13:47:21 +03:00
.gitignore Ignore log files 2020-02-19 13:45:09 +03:00
Dockerfile NSPCC-762 Connection pool 2019-12-21 13:26:14 +03:00
go.mod Update dependencies 2020-02-07 18:04:02 +03:00
go.sum update go.sum 2020-02-07 18:06:19 +03:00
grace.go initial 2019-11-06 15:33:46 +03:00
LICENSE.md NSPCC-587 Add License and Readme 2019-11-07 20:29:29 +03:00
logger.go NSPCC-762 Connection pool 2019-12-21 13:26:14 +03:00
main.go use timer instead of ticker 2020-02-14 14:35:35 +03:00
Makefile docker: update dockerfile and make command 2019-12-13 19:18:45 +03:00
misc.go Use object.FilenameHeader instead custom constant 2020-02-04 14:00:45 +03:00
pool.go refactor reBalance and isAlive 2020-02-14 13:12:36 +03:00
README.md NSPCC-762 Connection pool 2019-12-21 13:26:14 +03:00
receive.go log elapsed time when could not receive object 2020-02-14 13:12:36 +03:00
settings.go Add constants with default values 2020-02-19 13:47:21 +03:00

NeoFS HTTP Gateway

NeoFS HTTP Gateway is example of tool that provides basic interactions with NeoFS. You can download files from NeoFS Network using NeoFS Gateway.

Install

go get -u github.com/nspcc-dev/neofs-gw

Configuration

# Flags
      --pprof                      enable pprof
      --metrics                    enable prometheus
  -h, --help                       show help
  -v, --version                    show version
      --key string                 "generated" to generate key, path to private key file, hex string or wif (default "generated")
      --verbose                    debug gRPC connections
      --request_timeout duration   gRPC request timeout (default 5s)
      --connect_timeout duration   gRPC connect timeout (default 30s)
      --listen_address string      HTTP Gateway listen address (default "0.0.0.0:8082")
  -p, --peers stringArray          NeoFS nodes

# Environments:

GW_KEY=stirng                           - "generated" to generate key, path to private key file, hex string or wif (default "generated")
GW_REQUEST_TIMEOUT=Duration             - timeout for request
GW_CONNECT_TIMEOUT=Duration             - timeout for connection
GW_LISTEN_ADDRESS=host:port             - address to listen connections
GW_PEERS_<X>_ADDRESS=host:port          - address of NeoFS Node
GW_PEERS_<X>_WEIGHT=float               - weight of NeoFS Node
GW_PPROF=bool                           - enable/disable pprof (/debug/pprof)
GW_METRICS=bool                         - enable/disable prometheus metrics endpoint (/metrics)
GW_KEEPALIVE_TIME=Duration              - аfter a duration of this time if the client doesn't see any activity
it pings the server to see if the transport is still alive. 
GW_KEEPALIVE_TIMEOUT=Duration           - after having pinged for keepalive check, the client waits for a duration
of Timeout and if no activity is seen even after that the connection is closed
GW_KEEPALIVE_PERMIT_WITHOUT_STREAM=Bool - if true, client sends keepalive pings even with no active RPCs.
If false, when there are no active RPCs, Time and Timeout will be ignored and no keepalive pings will be sent.