A Web GUI for your S3 buckets. Based on Cloudlena S3 Manager
Find a file
2024-08-08 11:42:49 -07:00
.github/workflows Upgrade to Go 1.22 2024-07-18 15:23:54 +02:00
internal/app/s3manager rebase 2024-03-06 05:37:00 -07:00
web setHTML -> innerHTML 2023-10-02 22:28:14 +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 Upgrade Go to version 1.19 2022-12-12 10:30:37 +01:00
.goreleaser.yml Add GoReleaser config 2021-04-21 11:02:51 +02:00
docker-compose.yml Upgrade Go to version 1.19 2022-12-12 10:30:37 +01:00
Dockerfile Update pipeline dependencies 2023-10-02 22:55:09 +02:00
go.mod Upgrade to Go 1.22 2024-07-18 15:23:54 +02:00
go.sum Upgrade to Go 1.22 2024-07-18 15:23:54 +02:00
LICENSE Clean up Dockerfile 2021-02-15 17:24:49 +01:00
main.go Update main.go 2023-09-29 15:24:02 +02:00
Makefile Upgrade minio-go to version 7 2021-08-17 15:44:49 +02:00
README.md ⬆️ Update Go version to 1.21.6 2024-02-10 21:34:48 +01: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)
  • SIGNATURE_TYPE: The signature type to be used (defaults to V4; valid values are V2, V4, V4Streaming, Anonymous)
  • 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)
  • SSE_TYPE: Specified server side encrpytion (defaults blank) Valid values can be SSE, KMS, SSE-C all others values don't enable the SSE
  • SSE_KEY: The key needed for SSE method (only for KMS and SSE-C)
  • TIMEOUT: The read and write timout in seconds (default to 600 - 10 minutes)

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 to Kubernetes

You can deploy s3manager to a Kubernetes cluster using the Helm chart.

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