c077332721
- Replaced router by gorrila/mux - Used viper for environment variables instead of os - Added option to forbid object deletion - Added option to list bucket recursively - Added option to not add donwload headers in getObject - Added ability to download nested objects - Object donwloading will open in a new tab Signed-off-by: Sergey Shevchenko <sergeyshevchdevelop@gmail.com>
68 lines
2.2 KiB
Markdown
68 lines
2.2 KiB
Markdown
# S3 Manager
|
|
|
|
[![Go Report Card](https://goreportcard.com/badge/github.com/cloudlena/s3manager)](https://goreportcard.com/report/github.com/cloudlena/s3manager)
|
|
[![Build Status](https://github.com/cloudlena/s3manager/actions/workflows/main.yml/badge.svg)](https://github.com/cloudlena/s3manager/actions)
|
|
|
|
A Web GUI written in Go to manage S3 buckets from any provider.
|
|
|
|
![Screenshot](https://raw.githubusercontent.com/cloudlena/s3manager/master/screenshot.png)
|
|
|
|
## 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)
|
|
- `SECRET_ACCESS_KEY`: Your S3 secret access key (required)
|
|
- `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 the bucket recursively (defaults to `false`)
|
|
|
|
### Build and Run Locally
|
|
|
|
1. Run `make build`
|
|
1. 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`
|
|
|
|
## Development
|
|
|
|
### Lint Code
|
|
|
|
1. Run `make lint`
|
|
|
|
### Run Tests
|
|
|
|
1. Run `make test`
|
|
|
|
### Build Container Image
|
|
|
|
The image is available on [Docker Hub](https://hub.docker.com/r/cloudlena/s3manager/)
|
|
|
|
1. Run `make build-image`
|
|
|
|
### Run Locally for Testing
|
|
|
|
There is an example [docker-compose.yml](https://github.com/cloudlena/s3manager/blob/master/docker-compose.yml) file that spins up an S3 service and the s3manager. You can try it by issuing the following command:
|
|
|
|
```shell
|
|
$ docker-compose up
|
|
```
|