Files
rustfs/crates/protocols/src/constants.rs
T
2026-05-10 03:48:42 +00:00

76 lines
2.3 KiB
Rust

// Copyright 2024 RustFS Team
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/// Path and file system constants
pub mod paths {
/// Universal path constants
pub const ROOT_PATH: &str = "/";
pub const CURRENT_DIR: &str = ".";
pub const PARENT_DIR: &str = "..";
pub const PATH_SEPARATOR: &str = "/";
/// File mode and permission constants
pub const DIR_MODE: u32 = 0o040000;
pub const FILE_MODE: u32 = 0o100000;
pub const DIR_PERMISSIONS: u32 = 0o755;
pub const FILE_PERMISSIONS: u32 = 0o644;
}
/// Network constants
pub mod network {
/// Default network addresses
pub const DEFAULT_SOURCE_IP: &str = "0.0.0.0";
pub const DEFAULT_ADDR: &str = "0.0.0.0:0";
/// Authentication constants
pub const AUTH_SUFFIX_SVC: &str = "=svc";
pub const AUTH_SUFFIX_LDAP: &str = "=ldap";
pub const AUTH_FAILURE_DELAY_MS: u64 = 300;
}
/// FTPS constants
#[cfg(feature = "ftps")]
pub mod ftps {
pub const PORT_RANGE_SEPARATOR: &str = "-";
pub const PASSIVE_PORTS_PART_COUNT: usize = 2;
}
/// WebDAV constants
#[cfg(feature = "webdav")]
pub mod webdav {
/// Maximum body size (5GB)
pub const MAX_BODY_SIZE: u64 = 5 * 1024 * 1024 * 1024;
/// Default request timeout in seconds
pub const REQUEST_TIMEOUT_SECS: u64 = 300;
}
/// Default configuration values
pub mod defaults {
/// Default protocol addresses
#[cfg(feature = "ftps")]
pub const DEFAULT_FTPS_ADDRESS: &str = "0.0.0.0:8021";
/// Default FTPS passive port range
#[cfg(feature = "ftps")]
pub const DEFAULT_FTPS_PASSIVE_PORTS: &str = "40000-50000";
/// Default WebDAV server address
#[cfg(feature = "webdav")]
pub const DEFAULT_WEBDAV_ADDRESS: &str = "0.0.0.0:8080";
/// Default SFTP server address
#[cfg(feature = "sftp")]
pub const DEFAULT_SFTP_ADDRESS: &str = "0.0.0.0:2222";
}