GoReplay PRO

OSS does not include these. Product and license: /pro/. OSS builds print that S3 is PRO-only if you pass an s3:// path anyway.

PRO-only: S3, binary protocols, keep-alive TCP session recognition, commercial license.

S3

Use the file plugins with an s3:// URL. Same chunking and date tokens as local files. S3 has prefixes, not * globs: s3://logs/2016-05- not logs/2016-05-*.

gor --input-raw :80 --output-file s3://mybucket/logs/%Y-%m-%d.gz --output-file-buffer /mnt/logs
gor --input-file s3://mybucket/logs/2016-05- --output-http="http://staging.example.com"

Credentials from standard AWS env vars: AWS_ACCESS_KEY_ID / AWS_ACCESS_KEY, AWS_SECRET_ACCESS_KEY / AWS_SECRET_KEY, AWS_REGION / AWS_DEFAULT_REGION, AWS_ENDPOINT_URL (Minio and friends), AWS_SESSION_TOKEN. AWS_SDK_LOAD_CONFIG loads ~/.aws.

Binary protocols

gor --input-raw :80 --input-raw-protocol binary --output-binary staging:8081
gor --input-file './binary*.gor|1000%' --output-binary staging:9091 --input-file-loop --exit-after 30s

--input-raw-expire (default 2s) waits because generic binary has no HTTP-style length. Related: --output-binary-workers, --output-binary-timeout, --output-binary-track-response, --output-binary-debug.

Keep-alive TCP sessions

gor --input-raw :80 --recognize-tcp-sessions --output-http="http://test.target"

OSS replay does not pin a keep-alive session to one outbound connection. PRO does, and split-output becomes session-based. See distributed and HTTP sessions.

Compile from source.