Bug fixing

This commit is contained in:
Your Name
2025-05-25 15:11:13 +12:00
parent 27acc9f9f0
commit 3033701d6c
3 changed files with 11 additions and 12 deletions

View File

@@ -76,13 +76,13 @@ docker-compose up -d
## Configuration ## Configuration
The server can be configured by creating a JSON configuration file at `~/.config/simple_object_storage/config.json`. Here's an example configuration: The server can be configured by creating a JSON configuration file at `~/.config/simple_object_storage/config.json`. Default values are shown below (everything but write tokens), suitable for running in Docker.
```json ```json
{ {
"host": "localhost", "host": "0.0.0.0",
"port": 8080, "port": 80,
"storage_path": "/path/to/storage", "storage_path": "/data/storage",
"write_tokens": ["your-secret-token"], "write_tokens": ["your-secret-token"],
"cors": { "cors": {
"allowed_origins": ["*"], "allowed_origins": ["*"],
@@ -92,7 +92,7 @@ The server can be configured by creating a JSON configuration file at `~/.config
}, },
"rate_limiting": { "rate_limiting": {
"auth_rate_limit": 5, // Maximum number of auth attempts "auth_rate_limit": 5, // Maximum number of auth attempts
"auth_window_seconds": 10 // Time window in seconds (10 seconds) "auth_window_seconds": 300 // Time window in seconds (5 minutes)
} }
} }
``` ```

View File

@@ -17,10 +17,7 @@ bool load_config(const std::string& config_path, ServerConfig& config) {
nlohmann::json j; nlohmann::json j;
file >> j; file >> j;
config.host = "0.0.0.0"; config = ServerConfig(); // set defaults.
config.port = 8123;
config.object_store_path = "/data/storage";
config.write_tokens = {};
// Parse write tokens // Parse write tokens
if (j.contains("write_tokens")) { if (j.contains("write_tokens")) {

View File

@@ -9,17 +9,19 @@ namespace simple_object_storage {
struct ServerConfig { struct ServerConfig {
std::vector<std::string> write_tokens; std::vector<std::string> write_tokens;
std::filesystem::path object_store_path; std::filesystem::path object_store_path = "/data/storage";
std::string host = "0.0.0.0"; std::string host = "0.0.0.0";
uint16_t port = 0; uint16_t port = 80;
// CORS configuration // CORS configuration
std::vector<std::string> allowed_origins = {"*"}; // Default to allow all origins std::vector<std::string> allowed_origins = {"*"}; // Default to allow all origins
std::vector<std::string> allowed_methods = {"GET", "PUT", "POST", "DELETE", "OPTIONS"}; std::vector<std::string> allowed_methods = {"GET", "PUT", "POST", "DELETE", "OPTIONS"};
std::vector<std::string> allowed_headers = {"Authorization", "Content-Type"}; std::vector<std::string> allowed_headers = {"Authorization", "Content-Type"};
bool allow_credentials = false; bool allow_credentials = false;
// Rate limiting configuration // Rate limiting configuration
int auth_rate_limit = 5; // Maximum number of auth attempts int auth_rate_limit = 5; // Maximum number of auth attempts
int auth_window_seconds = 10; // Time window in seconds (10 seconds) int auth_window_seconds = 300; // Time window in seconds (5 minutes)
}; };
bool load_config(const std::string& config_path, ServerConfig& config); bool load_config(const std::string& config_path, ServerConfig& config);