A simple proxy to browse files from private S3 buckets. Helpful to be put behind another authenticating web server, such as Apache or NGINX.
Find a file
2023-07-01 21:31:04 +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 Fix display of folders 2023-07-01 21:31:04 +02:00
templates Fix display of folders 2023-07-01 21:31:04 +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

[//]: # 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