You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Joseph 9a54f980e1 first commit 1 year ago
handlers first commit 1 year ago
internal/testhelper first commit 1 year ago
travis-scripts first commit 1 year ago
vodmodule first commit 1 year ago
.drone.jsonnet first commit 1 year ago
.drone.yml first commit 1 year ago
.gitignore first commit 1 year ago
CODEOWNERS first commit 1 year ago
Dockerfile first commit 1 year ago
LICENSE first commit 1 year ago
README.md first commit 1 year ago
gcs_helper first commit 1 year ago
go.mod first commit 1 year ago
go.sum first commit 1 year ago
main.go first commit 1 year ago
server.go first commit 1 year ago
server_test.go first commit 1 year ago

README.md

gcs-helper

Build Status
codecov

gcs-helper is inspired by
s3-helper and is used to provide
access to private GCS buckets.

It was designed to be used with Kaltura’s
nginx-vod-module
, but it can also
work as a standalone proxy.

Specific to nginx-vod-module, gcs-helper provides support for the mapped mode
(when using the proper environment variables - GCS_HELPER_PROXY_PREFIX,
GCS_HELPER_MAP_PREFIX and GCS_HELPER_MAP_REGEX_FILTER).

Configuration

The following environment variables control the behavior of gcs-helper:

Variable Default value Required Description
GCS_HELPER_LISTEN :8081 No Address to bind the server
GCS_HELPER_BUCKET_NAME Yes Name of the bucket
GCS_HELPER_LOG_LEVEL debug No Logging level
GCS_HELPER_PROXY_PREFIX No Prefix to use for the proxy binding. Required if running in map and proxy modes (example value: /proxy/)
GCS_HELPER_PROXY_TIMEOUT 10s No Defines the maximum time in serving the proxy requests, this is a hard timeout and includes retries
GCS_HELPER_MAP_PREFIX No Prefix to use for the map binding. Required if running in map and proxy modes (example value: /map/)
GCS_HELPER_MAP_REGEX_FILTER No A regular expression that is used to deliver only those files that match the specified naming convention (example value: \d{3,4}p(.mp4

The are also some configuration variables for network communication with Google
Cloud Storage API:

Variable Default value Required Description
GCS_CLIENT_TIMEOUT 2s No Hard timeout on requests that gcs-helper sends to the Google Storage API
GCS_CLIENT_IDLE_CONN_TIMEOUT 120s No Maximum duration of idle connections between gcs-helper and the Google Storage API
GCS_CLIENT_MAX_IDLE_CONNS 10 No Maximum number of idle connections to keep open. This doesn’t control the maximum number of connections

GCS_HELPER_PROXY_TIMEOUT x GCS_CLIENT_TIMEOUT

The timeout configuration is mainly controlled by two environment variables:
GCS_HELPER_PROXY_TIMEOUT and GCS_CLIENT_TIMEOUT. The
GCS_HELPER_PROXY_TIMEOUT controls how long requests to gcs-helper can take,
and GCS_CLIENT_TIMEOUT controls how long requests from gcs-helper to
Google’s API can take. Since gcs-helper automatically retries on failures, the
number of retries is roughly the value of GCS_HELPER_PROXY_TIMEOUT divided
by the value of GCS_CLIENT_TIMEOUT.