From 5050d0a3cbbd9873746caf9bc38371e58b0017d3 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sat, 3 Jun 2023 19:20:30 +0300 Subject: [PATCH] add usage instructions --- README.md | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/README.md b/README.md index 4902b66..0ee0e49 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,82 @@ # go-cdn + An experimental CDN project in Go. + +## Features + +- Serve static files securely over HTTP +- Basic authentication support +- File upload functionality + +## Possible use cases + +The CDN can be used in various scenarios, such as: + +- Hosting static assets (i.e images or Javascript files) for web applications +- Distributing files securely to authorized users +- Building a personal or small-scale CDN for content delivery + +## Usage + +### Starting the CDN + +1. Build the program + +```go +go build +``` + +2. Run the built binary + +```go + +``` + +### Using the CDN + +To request a file from the CDN, use the following URL format: + +```bash +http://your-cdn-server:port/file-path +``` + +> Replace your-cdn-server with the hostname or IP address of your CDN server and port with the port number on which the server is running. Append the desired file path after the hostname and port. + +**Example:** + +- `http://localhost:8080/images/file_you_have_uploaded.png` + + - If the file exists and the request is authorized, the file will be served by the CDN. + - If the file doesn't exist, a 404 Not Found response will be returned. + +#### Uploading Files to the CDN + +> Send a POST request to the /upload endpoint of the CDN server. + +Example using cURL: + +```bash +curl -X POST -u username:password -F "file=@/path/to/file" http://your-cdn-server:port/upload +``` + +> Replace username and password with the authentication credentials you have set in the main.go file. Replace your-cdn-server with the hostname or IP address of your CDN server and port with the port number on which the server is running. Provide the file path after the @ symbol in the -F parameter. + +**Example:** + +```bash +curl -X POST -u admin:password -F "file=@/absolute/path/to/image.jpg" http://localhost:8080/upload +``` + + - The uploaded file will be saved in the specified uploadPath directory. + +> Note: The server responds with a success message if the file upload is successful. + +### Security Considerations + +It is highly recommended to use SSL/TLS encryption (HTTPS) for secure communication between clients and the CDN server. +Change the default username and password in the main.go file to strong and secure credentials. +Consider implementing additional security measures based on your specific requirements. + +# License + +This project is licensed under the GPL3 License. See the LICENSE file for details.