A Web GUI for your S3 buckets. Based on Cloudlena S3 Manager
.github/workflows | ||
internal/app/s3manager | ||
static | ||
web/template | ||
.cfignore | ||
.dockerignore | ||
.gitignore | ||
.golangci.yml | ||
.goreleaser.yml | ||
docker-compose.yml | ||
Dockerfile | ||
go.mod | ||
go.sum | ||
LICENSE | ||
main.go | ||
Makefile | ||
README.md | ||
screenshot.png |
S3 Manager
A Web GUI written in Go to manage S3 buckets from any provider.
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 tos3.amazonaws.com
)REGION
: The region of your S3 server (defaults to""
)ACCESS_KEY_ID
: Your S3 access key ID (required) (works only ifUSE_IAM
isfalse
)SECRET_ACCESS_KEY
: Your S3 secret access key (required) (works only ifUSE_IAM
isfalse
)USE_SSL
: Whether your S3 server uses SSL or not (defaults totrue
)SKIP_SSL_VERIFICATION
: Whether the HTTP client should skip SSL verification (defaults tofalse
)PORT
: The port the s3manager app should listen on (defaults to8080
)ALLOW_DELETE
: Enable buttons to delete objects (defaults totrue
)FORCE_DOWNLOAD
: Add response headers for object downloading instead of opening in a new tab (defaults totrue
)LIST_RECURSIVE
: List all objects in buckets recursively (defaults tofalse
)USE_IAM
: Use IAM role instead of key pair (defaults tofalse
)IAM_ENDPOINT
: Endpoint for IAM role retrieving (Can be blank for AWS)
Build and Run Locally
- Run
make build
- Execute the created binary and visit http://localhost:8080
Run Container image
- 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
- Run
make lint
Run Tests
- Run
make test
Build Container Image
The image is available on Docker Hub.
- 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