Bug fixing
This commit is contained in:
10
README.md
10
README.md
@@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
@@ -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")) {
|
||||||
|
@@ -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);
|
||||||
|
Reference in New Issue
Block a user