All Projects → nytimes → gcs-helper

nytimes / gcs-helper

Licence: Apache-2.0 License
Tool for proxying and mapping HTTP requests to Google Cloud Storage (GCS).

Programming Languages

go
31211 projects - #10 most used programming language
Jsonnet
166 projects
shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to gcs-helper

astro
Astro allows rapid and clean development of {Extract, Load, Transform} workflows using Python and SQL, powered by Apache Airflow.
Stars: ✭ 79 (+51.92%)
Mutual labels:  gcs
storage
Go library providing common interface for working across multiple cloud storage backends
Stars: ✭ 154 (+196.15%)
Mutual labels:  gcs
gcp-storage-emulator
Local emulator for Google Cloud Storage
Stars: ✭ 43 (-17.31%)
Mutual labels:  gcs
MAVCesium
An experimental web based map display for MAVProxy based on Cesium
Stars: ✭ 28 (-46.15%)
Mutual labels:  gcs
go-fsimpl
Go io/fs.FS filesystem implementations for various URL schemes
Stars: ✭ 225 (+332.69%)
Mutual labels:  gcs
sftp-gateway
This repository contains a docker image configured to use the SSH File Transfer Protocol (SFTP) to transfer all its files to Cloud Blob Storage Services. This image can be deployed on a Kubernetes cluster with Helm.
Stars: ✭ 18 (-65.38%)
Mutual labels:  gcs
flyio
Input Output Files in R from Cloud or Local
Stars: ✭ 46 (-11.54%)
Mutual labels:  gcs
gcsfs
Google Cloud Storage filesystem for PyFilesystem2
Stars: ✭ 36 (-30.77%)
Mutual labels:  gcs
go-storage
A vendor-neutral storage library for Golang: Write once, run on every storage service.
Stars: ✭ 387 (+644.23%)
Mutual labels:  gcs
cloud-integration
Spark cloud integration: tests, cloud committers and more
Stars: ✭ 20 (-61.54%)
Mutual labels:  gcs
google-cloud
A collection of Google Cloud Platform (GCP) plugins
Stars: ✭ 34 (-34.62%)
Mutual labels:  gcs
documentai-notebooks
A centralized repository for AI Platform notebooks using the Google Cloud Document AI API.
Stars: ✭ 61 (+17.31%)
Mutual labels:  gcs
fluent-plugin-gcs
Google Cloud Storage output plugin for Fluentd.
Stars: ✭ 39 (-25%)
Mutual labels:  gcs
spark-on-k8s-gcp-examples
Example Spark applications that run on Kubernetes and access GCP products, e.g., GCS, BigQuery, and Cloud PubSub
Stars: ✭ 36 (-30.77%)
Mutual labels:  gcs
hub
Public reusable components for Polyaxon
Stars: ✭ 8 (-84.62%)
Mutual labels:  gcs
tame-gcs
📂 A small library with a limited set of Google Cloud Storage operations 🦀
Stars: ✭ 37 (-28.85%)
Mutual labels:  gcs
Goofys
a high-performance, POSIX-ish Amazon S3 file system written in Go
Stars: ✭ 3,932 (+7461.54%)
Mutual labels:  gcs

gcs-helper

This project is no longer maintained. If you need this repository to be un-archived, please fork it.

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 :8080 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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].