Private HTTP Server for Amazon S3 content
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Private HTTP Server for Amazon S3 content.

Build Status

Amazon S3 provides a public HTTP interface for accessing content, but what if you don't want publicly accessible files?

private_s3_httpd exposes a private HTTP endpoint for an Amazon S3 bucket so you can controll access to the data. This is ideal for accessing S3 via HTTP api as a backend data service, or for local http browsing of a private s3 bucket, or for use behind another authentication service (like oauth2_proxy) to secure access.

Usage of bin/private_s3_httpd:
  -bucket string
    	S3 bucket name
  -listen string
    	address:port to listen on. (default ":8080")
    	log HTTP requests (default true)
  -region string
    	AWS S3 Region (default "us-east-1")
  -s3-endpoint string
    	alternate http://address for accessing s3 (for configuring with

Configuring S3 Credentials

Before using, ensure that you've configured credentials appropriately. The best way to configure credentials is to use the ~/.aws/credentials file, which might look like:

aws_access_key_id = AKID1234567890
aws_secret_access_key = MY-SECRET-KEY

You can learn more about the credentials file from this blog post.

Alternatively, you can set the following environment variables:



Building From Source

This project uses gb the Go Build tool. To load vendored dependencies and compile run ./ && gb build