An implementation of the WebDav protocol backed by AWS S3 and DynamoDB.
Metadata:
Reference:
Note: In reality, the reference paths are hashed.
Metadata:
| Key | Attributes | Type | Description |
|---|---|---|---|
| PK | id | string | Unique ID (eg. UUID) |
| GSIPK1 | parent_id | string | ID of the parent directory |
| name | string | Name (eg. report.pdf) | |
| type | string | File system entry type (eg. File or Directory) | |
| size | number | File size (eg. 512) | |
| modify | string | File modify time (eg. ISO 8601) | |
| version | number | Version number for optimistic lock (eg. 1) |
Reference:
# S3 Key (Metadata#id)
$bucket_name/$UUID
Starting Docker Compose:
docker-compose up --force-recreate --build --abort-on-container-exitInitialize DynamoDB(dynamodb-local):
docker-compose run dynamodb-initInitialize S3(minio):
docker-compose run s3-initRun Go Application:
env AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" AWS_REGION="us-east-1" go run main.go --port=8080 --dynamodb-url=http://localhost:18070 --s3-url=http://localhost:19010- vvatanabe - Main contributor
- safx - Main contributor
- kunst1080 - Main contributor
- Currently, there are no other contributors
This project is licensed under the MIT License. For detailed licensing information, refer to the LICENSE file included in the repository.




