55 lines
1.4 KiB
Markdown
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
|
|
|