A simple proxy to browse files from private S3 buckets. Helpful to be put behind another authenticating web server, such as Apache or NGINX.
Go to file
Matteo Settenvini eccd4ef797 Connect and retrieve initial bucket index 2023-07-01 13:37:21 +02:00
.vscode Connect and retrieve initial bucket index 2023-07-01 13:37:21 +02:00
LICENSES Connect and retrieve initial bucket index 2023-07-01 13:37:21 +02:00
src Connect and retrieve initial bucket index 2023-07-01 13:37:21 +02:00
templates Connect and retrieve initial bucket index 2023-07-01 13:37:21 +02:00
.gitignore Connect and retrieve initial bucket index 2023-07-01 13:37:21 +02:00
.pre-commit-config.yaml Connect and retrieve initial bucket index 2023-07-01 13:37:21 +02:00
Cargo.lock Connect and retrieve initial bucket index 2023-07-01 13:37:21 +02:00
Cargo.lock.license Connect and retrieve initial bucket index 2023-07-01 13:37:21 +02:00
Cargo.toml Connect and retrieve initial bucket index 2023-07-01 13:37:21 +02:00
README.md Connect and retrieve initial bucket index 2023-07-01 13:37:21 +02:00
Settings.toml.example Connect and retrieve initial bucket index 2023-07-01 13:37:21 +02:00

README.md

[//]: # SPDX-FileCopyrightText: © Matteo Settenvini matteo.settenvini@montecristosoftware.eu [//]: # SPDX-License-Identifier: EUPL-1.2

serves3

A very simple proxy to browse files from private S3 buckets.

Helpful to be put behind another authenticating web server, such as Apache or NGINX.

Also helpful to do a different TLS termination.

Configuration

Copy Settings.toml.example to Settings.toml and adjust your settings.

You can also add a Rocket.toml file to customize the server options. See the Rocket documentation.

Then just configure Apache or NGINX to proxy to the given port. For example:

<VirtualHost *:443>
    ServerName example.com
    ServerAdmin support@example.com
    DocumentRoot /var/www

    ProxyPreserveHost On
    ProxyPass /s3/ http://127.0.0.1:8000/
    ProxyPassReverse /s3/ http://127.0.0.1:8000/

    # ... other options ...
</VirtualHost>

Build and install

cargo install --root /usr/local # for instance
cd run-folder # folder with Settings.toml
serves3