FrostFS S3 Protocol Gateway with fuzzing tests
Find a file
Alex Vanin 385437aace [#441] Don't produce extra object.Head request at regular object upload
Hash can be calculated locally in S3 gateway.
Creation epoch used for versioning and will be
fetched during get and list requests. To avoid
conflicts, put method do not update cache anymore.

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2022-05-20 10:56:36 +03:00
.github/workflows [#434] Update go version to 1.17 2022-05-16 10:49:51 +03:00
api [#441] Don't produce extra object.Head request at regular object upload 2022-05-20 10:56:36 +03:00
authmate [#428] Update SDK 2022-05-06 14:47:06 +04:00
cmd [#391] Remove unused notification controller from app state 2022-05-06 11:03:20 +03:00
config [#396] Rename rpc-endpoint and resolve-order 2022-04-18 11:58:54 +03:00
creds [#428] Update SDK 2022-05-06 14:47:06 +04:00
docs [#432] Add get-object-attributes 2022-05-13 11:42:43 +03:00
internal [#435] Sync homomorphic hash disabling with network config 2022-05-16 15:16:39 +03:00
.dockerignore Initial commit based on https://github.com/minio/minio/releases/tag/RELEASE.2020-07-02T00-15-09Z 2020-07-03 15:03:06 +03:00
.gitignore gitignore: more ignores 2021-05-13 22:08:20 +03:00
.golangci.yml [#272] Replace golint by revive 2021-10-01 12:25:54 +03:00
CHANGELOG.md Release v0.21.1 2022-05-16 15:29:35 +03:00
Dockerfile [#57] *: Fix docker builds 2021-05-24 15:07:08 +03:00
go.mod [#434] Update go version to 1.17 2022-05-16 10:49:51 +03:00
go.sum [#434] Update go version to 1.17 2022-05-16 10:49:51 +03:00
help.mk Refactoring Makefile 2021-02-08 12:45:18 +03:00
LICENSE [#264] Change NeoFS S3 Gateway license to AGPLv3 2021-09-20 10:38:28 +03:00
Makefile [#287] Add version 2021-12-07 11:12:54 +03:00
README.md [#150] Add S3 compatibility test results 2021-08-24 15:33:45 +03:00
updateTestsResult.sh [#304] Add update of results for chosen storage 2022-01-17 12:49:57 +03:00
VERSION Release v0.21.1 2022-05-16 15:29:35 +03:00

NeoFS S3 Gateway

NeoFS S3 gateway provides API compatible with Amazon S3 cloud storage service.

Installation

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

Or you can call make to build it from the cloned repository (the binary will end up in bin/neofs-s3-gw with authmate helper in bin/neofs-authmate).

Notable make targets:

dep          Check and ensure dependencies
image        Build clean docker image
dirty-image  Build dirty docker image with host-built binaries
format       Run all code formatters
lint         Run linters
version      Show current version

Or you can also use a Docker image provided for released (and occasionally unreleased) versions of gateway (:latest points to the latest stable release).

Execution

Minimalistic S3 gateway setup needs:

  • NeoFS node(s) address (S3 gateway itself is not a NeoFS node) Passed via -p parameter or via S3_GW_PEERS_<N>_ADDRESS and S3_GW_PEERS_<N>_WEIGHT environment variables (gateway supports multiple NeoFS nodes with weighted load balancing).
  • a wallet used to fetch key and communicate with NeoFS nodes Passed via --wallet parameter or S3_GW_WALLET environment variable.

These two commands are functionally equivalent, they run the gate with one backend node, some keys and otherwise default settings:

$ neofs-s3-gw -p 192.168.130.72:8080 --wallet wallet.json

$ S3_GW_PEERS_0_ADDRESS=192.168.130.72:8080 \
  S3_GW_WALLET=wallet.json \
  neofs-s3-gw

It's also possible to specify uri scheme (grpc or grpcs) when using -p or environment variables:

$ neofs-s3-gw -p grpc://192.168.130.72:8080 --wallet wallet.json

$ S3_GW_PEERS_0_ADDRESS=grpcs://192.168.130.72:8080 \
  S3_GW_WALLET=wallet.json \
  neofs-s3-gw

Documentation