Private HTTP Server for Amazon S3 content
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src/cmd/private_s3_httpd
.gitignore
.travis.yml
LICENSE
README.md
dist.sh
test.sh
vendor.sh

README.md

private_s3_httpd

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-requests
    	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 minio.io)

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:

[default]
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:

AWS_ACCESS_KEY_ID=AKID1234567890
AWS_SECRET_ACCESS_KEY=MY-SECRET-KEY

Installing

Building From Source

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