89 lines
No EOL
4.2 KiB
Markdown
89 lines
No EOL
4.2 KiB
Markdown
# NeoFS HTTP Gate
|
|
|
|
NeoFS HTTP Gate is example of tool that provides basic interactions with NeoFS.
|
|
|
|
- you can download one file per request from NeoFS Network using NeoFS Gate
|
|
- you can upload one file per request into NeoFS Network using NeoFS Gate
|
|
|
|
## Notable make targets
|
|
|
|
```
|
|
Usage:
|
|
|
|
make <target>
|
|
|
|
Targets:
|
|
|
|
deps Check and ensure dependencies
|
|
dev Build development docker images
|
|
help Show this help prompt
|
|
image Build docker image
|
|
publish Publish docker image
|
|
version Show current version
|
|
```
|
|
|
|
## Install
|
|
|
|
```go get -u github.com/nspcc-dev/neofs-http-gate```
|
|
|
|
## File uploading behaviors
|
|
|
|
- you can upload on file per request
|
|
- if `FileName` not provided by Header attributes, multipart/form filename will be used instead
|
|
|
|
## 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 Gate listen address (default "0.0.0.0:8082")
|
|
-p, --peers stringArray NeoFS nodes
|
|
|
|
# Environments:
|
|
|
|
HTTP_GW_KEY=string - "generated" to generate key, path to private key file, hex string or wif (default "generated")
|
|
HTTP_GW_CONNECT_TIMEOUT=Duration - timeout for connection
|
|
HTTP_GW_REQUEST_TIMEOUT=Duration - timeout for request
|
|
HTTP_GW_REBALANCE_TIMER=Duration - time between connections checks
|
|
HTTP_GW_LISTEN_ADDRESS=host:port - address to listen connections
|
|
HTTP_GW_PEERS_<X>_ADDRESS=host:port - address of NeoFS Node
|
|
HTTP_GW_PEERS_<X>_WEIGHT=float - weight of NeoFS Node
|
|
HTTP_GW_PPROF=bool - enable/disable pprof (/debug/pprof)
|
|
HTTP_GW_METRICS=bool - enable/disable prometheus metrics endpoint (/metrics)
|
|
HTTP_GW_LOGGER_FORMAT=string - logger format
|
|
HTTP_GW_LOGGER_LEVEL=string - logger level
|
|
HTTP_GW_LOGGER_NO_CALLER=bool - logger don't show caller
|
|
HTTP_GW_LOGGER_NO_DISCLAIMER=bool - logger don't show application name/version
|
|
HTTP_GW_LOGGER_SAMPLING_INITIAL=int - logger sampling initial
|
|
HTTP_GW_LOGGER_SAMPLING_THEREAFTER=int - logger sampling thereafter
|
|
HTTP_GW_LOGGER_TRACE_LEVEL=string - logger show trace on level
|
|
HTTP_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.
|
|
HTTP_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
|
|
HTTP_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.
|
|
|
|
HTTP_GW_UPLOAD_HEADER_USE_DEFAULT_TIMESTAMP=bool - enable/disable adding current timestamp attribute when object uploads
|
|
|
|
HTTP_GW_WEB_READ_BUFFER_SIZE=4096 - per-connection buffer size for requests' reading
|
|
HTTP_GW_WEB_READ_TIMEOUT=15s - an amount of time allowed to read the full request including body
|
|
HTTP_GW_WEB_WRITE_BUFFER_SIZE=4096 - per-connection buffer size for responses' writing
|
|
HTTP_GW_WEB_WRITE_TIMEOUT=1m0s - maximum duration before timing out writes of the response
|
|
HTTP_GW_WEB_STREAM_REQUEST_BODY=true - enables request body streaming, and calls the handler sooner when given
|
|
body is larger then the current limit
|
|
HTTP_GW_WEB_MAX_REQUEST_BODY_SIZE=4194304 - maximum request body size, server rejects requests with bodies exceeding
|
|
this limit
|
|
|
|
Peers preset:
|
|
|
|
HTTP_GW_PEERS_[N]_ADDRESS = string
|
|
HTTP_GW_PEERS_[N]_WEIGHT = 0..1 (float)
|
|
``` |