proxy

package
v0.7.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 20, 2026 License: Apache-2.0 Imports: 32 Imported by: 0

README

Chorus Proxy

Serves S3 proxy on port :9669. Routes S3 requests to storages from config based on routing policy and creates replication tasks for worker based on replication policy.

Usage

Set storage and Redis credentials in config.yaml and run.

[!IMPORTANT] Both Proxy and Worker should have the same Redis and storage configuration.

Manage replication policies with CLI.

[!NOTE] Worker is required to use CLI. Deploy worker and provide worker gRPC API address to CLI.

With CLI:

  • Check current replication state: chorctl dash
  • List buckets for replication: chorctl repl buckets -f <from> -t <to> -u <user>
  • Create replication: chorctl repl add -f <from> -t <to> -u <user> -b <bucket>

Configuration

See config.yaml for all options.

Swift Note

For Swift storage, Proxy configuration differs from Worker:

  • Worker needs authURL and full Keystone credentials
  • Proxy only needs storageURL (direct Swift endpoint)

When using Helm, specify Swift storage separately in proxy.config.storage and worker.config.storage.

Auth

For S3, Proxy supports S3 signature v4 (v2 can be enabled). See auth section in config.yaml:

  • auth.useStorage - use credentials from a configured storage
  • auth.custom - use custom credentials for proxy endpoint

For SWIFT, proxy does not perform authentication itself. It checks response status from forwarded requests to Swift storage.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ProxyToCredsConf added in v0.7.0

func ProxyToCredsConf(in Storages) (objstore.Config, error)

func Start

func Start(ctx context.Context, app dom.AppInfo, conf *Config) error

func ValidateAuth added in v0.7.0

func ValidateAuth(storage Storages, auth *auth.Config) error

Types

type Config

type Config struct {
	config.Common `yaml:",inline,omitempty" mapstructure:",squash"`

	Storage Storages     `yaml:"storage,omitempty"`
	Auth    *auth.Config `yaml:"auth,omitempty"`
	Port    int          `yaml:"port"`
	Address string       `yaml:"address"`
	Cors    *cors.Config `yaml:"cors"`
}

func GetConfig

func GetConfig(src ...config.Opt) (*Config, error)

func (*Config) Validate

func (c *Config) Validate() error

type Storage added in v0.7.0

type Storages added in v0.7.0

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL