A Web GUI for your S3 buckets. Based on Cloudlena S3 Manager
Find a file
2022-04-01 11:58:44 +02:00
.github/workflows Upgrade to Go 1.18 2022-03-18 20:00:22 +01:00
internal/app/s3manager Fix review comments 2022-03-28 11:37:49 +02:00
web/template Refactoring: 2022-03-28 11:37:49 +02:00
.cfignore Upgrade minio-go to 6.0.10 2018-11-28 21:13:47 +01:00
.dockerignore Use official golangci-lint GitHub action 2020-07-21 09:02:26 +02:00
.gitignore Fix review comments 2022-03-28 11:37:49 +02:00
.golangci.yml Upgrade Go to version 1.17 2021-12-30 12:09:42 +01:00
.goreleaser.yml Add GoReleaser config 2021-04-21 11:02:51 +02:00
docker-compose.yml Fix review comments 2022-03-28 11:37:49 +02:00
Dockerfile Remove unused ADD statement from Dockerfile 2021-08-03 18:36:30 +02:00
go.mod Refactoring: 2022-03-28 11:37:49 +02:00
go.sum Refactoring: 2022-03-28 11:37:49 +02:00
LICENSE Clean up Dockerfile 2021-02-15 17:24:49 +01:00
main.go Fix review comments 2022-03-28 11:37:49 +02:00
Makefile Upgrade minio-go to version 7 2021-08-17 15:44:49 +02:00
README.md Mention helm chart in README 2022-04-01 11:58:44 +02:00
screenshot.png Add usage documentation 2020-05-04 10:36:17 +02:00

S3 Manager

Go Report Card Build Status

A Web GUI written in Go to manage S3 buckets from any provider.

Screenshot

Features

  • List all buckets in your account
  • Create a new bucket
  • List all objects in a bucket
  • Upload new objects to a bucket
  • Download object from a bucket
  • Delete an object in a bucket

Usage

Configuration

The application can be configured with the following environment variables:

  • ENDPOINT: The endpoint of your S3 server (defaults to s3.amazonaws.com)
  • REGION: The region of your S3 server (defaults to "")
  • ACCESS_KEY_ID: Your S3 access key ID (required) (works only if USE_IAM is false)
  • SECRET_ACCESS_KEY: Your S3 secret access key (required) (works only if USE_IAM is false)
  • USE_SSL: Whether your S3 server uses SSL or not (defaults to true)
  • SKIP_SSL_VERIFICATION: Whether the HTTP client should skip SSL verification (defaults to false)
  • PORT: The port the s3manager app should listen on (defaults to 8080)
  • ALLOW_DELETE: Enable buttons to delete objects (defaults to true)
  • FORCE_DOWNLOAD: Add response headers for object downloading instead of opening in a new tab (defaults to true)
  • LIST_RECURSIVE: List all objects in buckets recursively (defaults to false)
  • USE_IAM: Use IAM role instead of key pair (defaults to false)
  • IAM_ENDPOINT: Endpoint for IAM role retrieving (Can be blank for AWS)

Build and Run Locally

  1. Run make build
  2. Execute the created binary and visit http://localhost:8080

Run Container image

  1. Run docker run -p 8080:8080 -e 'ACCESS_KEY_ID=XXX' -e 'SECRET_ACCESS_KEY=xxx' cloudlena/s3manager

Deploy options

You can deploy s3manager in kubernetes cluster with helm chart: https://github.com/sergeyshevch/s3manager-helm

Development

Lint Code

  1. Run make lint

Run Tests

  1. Run make test

Build Container Image

The image is available on Docker Hub

  1. Run make build-image

Run Locally for Testing

There is an example docker-compose.yml file that spins up an S3 service and the s3manager. You can try it by issuing the following command:

$ docker-compose up