go-s3proxy

module
v0.0.0-...-ccf9024 Latest Latest
Warning

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

Go to latest
Published: Nov 15, 2020 License: BSD-3-Clause

README

S3Proxy

S3Proxy, as the name suggests, is a proxy server that allows you to access your authenticated S3 resources using HTTPS and HTTP BasicAuth. It prefetches a 1MB ahead of every new read that does not match the currently pre-fetched data chunk and position. This works nicely with sequential downloads and with video streaming.

You can configure the HTTP passwords globally using a tool like Apache's htpasswd:

]==> htpasswd -c -B passwords.txt user1
]==> htpasswd -B passwords.txt user2

Where: -c stands for create, -B stands for bcrypt.

You can also configure as many buckets as you want. While accessing the data, the first component of the path is assumed to be the mount point name, while the remaining components are assumed to constitute a key within the bucket that the mount point is associated with.

Below is an example config file. In it, you can see a map of mount points to buckets. If the bucket name in the map item is omited, it is assumed to be the same as the mount point name. If the region is omited, it is asumed to be us-west-1.

{
  "Web": {
    "BindAddresses": [
      {
        "Host": "127.0.0.1",
        "Port": 7649,
        "IsHttps": true,
      }
    ],
    "Https": {
      "Cert": "cert.pem",
      "Key": "key.pem"
    },
    "EnableAuth": true,
    "HtpasswdFile": "passords.txt",
  },
  "Buckets": {
    "test-bucket-1": {
      "Region": "eu-west-1",
      "Key": "asdf",
      "Secret": "foo"
    },
    "data": {
      "Bucket": "test-bucket-2",
      "Region": "eu-west-1",
      "Key": "asdf",
      "Secret": "foo"
    },
  }
}

Directories

Path Synopsis
cmd
s3proxy command
pkg

Jump to

Keyboard shortcuts

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