go-s3-uploader/README.md

55 lines
1.4 KiB
Markdown

# S3 Directory Uploader
A simple TUI to upload the files of a directory into an S3 bucket.
## Setup
```bash
go mod tidy
```
Set your environment variables to connect to your s3 bucket.
```bash
cp .env.example .env
```
## Usage
Run the program with:
```bash
go run .
```
or build and run:
```bash
$ go build -o s3uploud main.go
$ chmod +x ./s3upload
$ ./s3upload
```
You will then be prompted for more details.
##### Bucket
Just the name of the bucket man. Just make sure it exists or you will be insulted.
##### Directory
The path to the directory that you want uploaded. You can do relative or absolute.
##### Prefix
If you want to prepend anything to the key of the object in s3. Remember that
directories are not real in s3, but prepending the key with a something like
`/my/super/important/stuff/` will kind if act like a directory in the s3 UIs.
If you are using this prefix to act like a directory path, make sure to **not**
start it with a `/` and make sure that you **do** end it with a `/`
**Make sure to read the section that is literally right under this**
### Design & Limitations
- Does not handle nest directories at the moment.
- Will retry failed uploads once, retrys happen in bulk at the end of the process
- Does not overwrite files with the existing keys
- SSL is not enabled, nor is an env var made for it yet, as I built this to use inside
my own network. Set `useSSL` to true if using `https` for you endpoint