initial commit
This commit is contained in:
56
README.md
Normal file
56
README.md
Normal file
@@ -0,0 +1,56 @@
|
||||
# S3 Mover
|
||||
|
||||
A small web app with a Go backend and React frontend for listing, uploading, downloading, and deleting files in an S3 bucket.
|
||||
|
||||
## Structure
|
||||
|
||||
- `backend`: Go HTTP API for S3 operations
|
||||
- `frontend`: React + Vite client
|
||||
|
||||
## Backend configuration
|
||||
|
||||
Set these environment variables before starting the API:
|
||||
|
||||
- `AWS_REGION`: AWS region for the bucket
|
||||
- `S3_BUCKET`: target bucket name
|
||||
- `S3_PREFIX`: optional folder prefix inside the bucket
|
||||
- `FRONTEND_ORIGIN`: allowed browser origin for CORS, for example `http://localhost:5173`
|
||||
- `SERVER_ADDR`: HTTP bind address, default `:8080`
|
||||
- `AWS_ENDPOINT_URL`: optional custom S3-compatible endpoint
|
||||
- `AWS_USE_PATH_STYLE`: set to `true` for MinIO and some S3-compatible providers
|
||||
- `AWS_ACCESS_KEY_ID`: access key for S3-compatible storage
|
||||
- `AWS_SECRET_ACCESS_KEY`: secret key for S3-compatible storage
|
||||
|
||||
Standard AWS credentials are supported through the normal SDK chain. You can also set `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, and `AWS_SESSION_TOKEN`.
|
||||
|
||||
For DigitalOcean Spaces, a typical configuration looks like:
|
||||
|
||||
```bash
|
||||
AWS_REGION=nyc3
|
||||
S3_BUCKET=your-space-name
|
||||
AWS_ENDPOINT_URL=https://nyc3.digitaloceanspaces.com
|
||||
AWS_ACCESS_KEY_ID=your-access-key
|
||||
AWS_SECRET_ACCESS_KEY=your-secret-key
|
||||
AWS_USE_PATH_STYLE=false
|
||||
FRONTEND_ORIGIN=http://localhost:5173
|
||||
```
|
||||
|
||||
## Run locally
|
||||
|
||||
Backend:
|
||||
|
||||
```bash
|
||||
cd backend
|
||||
go mod tidy
|
||||
go run .
|
||||
```
|
||||
|
||||
Frontend:
|
||||
|
||||
```bash
|
||||
cd frontend
|
||||
npm install
|
||||
VITE_API_BASE_URL=http://localhost:8080 npm run dev
|
||||
```
|
||||
|
||||
Then open `http://localhost:5173`.
|
||||
Reference in New Issue
Block a user