mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-20 19:42:17 +00:00
添加config默认值
This commit is contained in:
Generated
+1
@@ -1156,6 +1156,7 @@ dependencies = [
|
|||||||
"http",
|
"http",
|
||||||
"hyper-util",
|
"hyper-util",
|
||||||
"mime",
|
"mime",
|
||||||
|
"netif",
|
||||||
"s3s",
|
"s3s",
|
||||||
"time",
|
"time",
|
||||||
"tokio",
|
"tokio",
|
||||||
|
|||||||
@@ -35,4 +35,5 @@ hyper-util = { version = "0.1.5", features = [
|
|||||||
] }
|
] }
|
||||||
mime = "0.3.17"
|
mime = "0.3.17"
|
||||||
transform-stream = "0.3.0"
|
transform-stream = "0.3.0"
|
||||||
|
netif = "0.1.6"
|
||||||
# pin-utils = "0.1.0"
|
# pin-utils = "0.1.0"
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ use clap::Parser;
|
|||||||
///
|
///
|
||||||
/// Used if no port is specified.
|
/// Used if no port is specified.
|
||||||
pub const DEFAULT_PORT: u16 = 9000;
|
pub const DEFAULT_PORT: u16 = 9000;
|
||||||
|
pub const DEFAULT_ACCESS_KEY: &str = "rustfsadmin";
|
||||||
|
pub const DEFAULT_SECRET_KEY: &str = "rustfsadmin";
|
||||||
|
|
||||||
#[derive(Debug, Parser)]
|
#[derive(Debug, Parser)]
|
||||||
pub struct Opt {
|
pub struct Opt {
|
||||||
|
|||||||
+38
-9
@@ -8,7 +8,7 @@ use hyper_util::{
|
|||||||
server::conn::auto::Builder as ConnBuilder,
|
server::conn::auto::Builder as ConnBuilder,
|
||||||
};
|
};
|
||||||
use s3s::{auth::SimpleAuth, service::S3ServiceBuilder};
|
use s3s::{auth::SimpleAuth, service::S3ServiceBuilder};
|
||||||
use std::io::IsTerminal;
|
use std::{io::IsTerminal, net::SocketAddr, str::FromStr};
|
||||||
use tokio::net::TcpListener;
|
use tokio::net::TcpListener;
|
||||||
use tracing::{debug, info};
|
use tracing::{debug, info};
|
||||||
use tracing_error::ErrorLayer;
|
use tracing_error::ErrorLayer;
|
||||||
@@ -41,28 +41,57 @@ fn main() -> Result<()> {
|
|||||||
#[tokio::main]
|
#[tokio::main]
|
||||||
async fn run(opt: config::Opt) -> Result<()> {
|
async fn run(opt: config::Opt) -> Result<()> {
|
||||||
debug!("opt: {:?}", &opt);
|
debug!("opt: {:?}", &opt);
|
||||||
|
|
||||||
|
let listener = TcpListener::bind(opt.address.clone()).await?;
|
||||||
|
let local_addr: SocketAddr = listener.local_addr()?;
|
||||||
|
|
||||||
|
let mut domain_name = {
|
||||||
|
netif::up()?
|
||||||
|
.map(|x| x.address().to_owned())
|
||||||
|
// .filter(|v| v.is_ipv4() && !v.is_loopback() && !v.is_unspecified())
|
||||||
|
.map(|v| format!("{}", v))
|
||||||
|
.next()
|
||||||
|
.and_then(|ip| {
|
||||||
|
if let SocketAddr::V4(ipv4) = local_addr {
|
||||||
|
Some(format!("{}:{}", ip, ipv4.port()))
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
}
|
||||||
|
})
|
||||||
|
};
|
||||||
|
|
||||||
// Setup S3 service
|
// Setup S3 service
|
||||||
let service = {
|
let service = {
|
||||||
let mut b = S3ServiceBuilder::new(storage::ecfs::FS::new(opt.address.clone(), opt.volumes.clone()).await?);
|
let mut b = S3ServiceBuilder::new(storage::ecfs::FS::new(opt.address.clone(), opt.volumes.clone()).await?);
|
||||||
|
|
||||||
|
let mut access_key = String::from_str(config::DEFAULT_ACCESS_KEY).unwrap();
|
||||||
|
let mut secret_key = String::from_str(config::DEFAULT_SECRET_KEY).unwrap();
|
||||||
|
|
||||||
// Enable authentication
|
// Enable authentication
|
||||||
if let (Some(ak), Some(sk)) = (opt.access_key, opt.secret_key) {
|
if let (Some(ak), Some(sk)) = (opt.access_key, opt.secret_key) {
|
||||||
b.set_auth(SimpleAuth::from_single(ak, sk));
|
access_key = ak;
|
||||||
info!("authentication is enabled");
|
secret_key = sk;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
info!("authentication is enabled {}, {}", &access_key, &secret_key);
|
||||||
|
b.set_auth(SimpleAuth::from_single(access_key, secret_key));
|
||||||
|
|
||||||
// Enable parsing virtual-hosted-style requests
|
// Enable parsing virtual-hosted-style requests
|
||||||
if let Some(domain_name) = opt.domain_name {
|
if let Some(dm) = opt.domain_name {
|
||||||
b.set_base_domain(domain_name);
|
domain_name = Some(dm)
|
||||||
info!("virtual-hosted-style requests are enabled");
|
}
|
||||||
|
|
||||||
|
if domain_name.is_some() {
|
||||||
|
info!(
|
||||||
|
"virtual-hosted-style requests are enabled use domain_name {}",
|
||||||
|
domain_name.as_ref().unwrap()
|
||||||
|
);
|
||||||
|
b.set_base_domain(domain_name.unwrap());
|
||||||
}
|
}
|
||||||
|
|
||||||
b.build()
|
b.build()
|
||||||
};
|
};
|
||||||
|
|
||||||
let listener = TcpListener::bind(opt.address).await?;
|
|
||||||
let local_addr = listener.local_addr()?;
|
|
||||||
|
|
||||||
let hyper_service = service.into_shared();
|
let hyper_service = service.into_shared();
|
||||||
|
|
||||||
let http_server = ConnBuilder::new(TokioExecutor::new());
|
let http_server = ConnBuilder::new(TokioExecutor::new());
|
||||||
|
|||||||
+7
-5
@@ -14,9 +14,11 @@ if [ -z "$RUST_LOG" ]; then
|
|||||||
export RUST_LOG="rustfs=debug,ecstore=debug,s3s=debug"
|
export RUST_LOG="rustfs=debug,ecstore=debug,s3s=debug"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cargo run \
|
cargo run "$DATA_DIR"
|
||||||
-- --access-key AKEXAMPLERUSTFS \
|
# -- --access-key AKEXAMPLERUSTFS \
|
||||||
--secret-key SKEXAMPLERUSTFS \
|
# --secret-key SKEXAMPLERUSTFS \
|
||||||
--address 0.0.0.0:9010 \
|
# --address 0.0.0.0:9010 \
|
||||||
--domain-name 127.0.0.1:9010 \
|
# --domain-name 127.0.0.1:9010 \
|
||||||
"$DATA_DIR"
|
"$DATA_DIR"
|
||||||
|
|
||||||
|
# cargo run "$DATA_DIR"
|
||||||
Reference in New Issue
Block a user