You need to enable JavaScript to run this app.
Torch Object Storage

Torch Object Storage

Copy page
Download PDF
Log analysis
GetBucketRealTimeLog(Rust SDK)
Copy page
Download PDF
GetBucketRealTimeLog(Rust SDK)
The get_bucket_real_time_log API queries the bucket's real-time log configuration and returns the role, TLS project, topic, dashboard ID, and TTL.​
Notes​
  • You need to fill in the region and access domain in the sample code according to your actual situation. For details, see region and access domain.​
  • To prevent key leakage, the sample code in this article reads the Access Key ID and Secret Access Key from environment variables. Therefore, before using the SDK, you need to configure long-term access credentials. For details, see configure long-term access credentials.​
Permissions required​
The Volcano Engine main account has all permissions by default, but IAM users have no permissions by default. If you want to perform the get_bucket_real_time_log operation with a sub-account, the Volcano Engine main account must grant the following permissions to the sub-account via IAM policies and bucket policies:​
tos:GetBucketRealTimeLog​
Code example​
Get real-time log configuration for the specified bucket​
​
use async_trait::async_trait;​
use futures_core::future::BoxFuture;​
use std::env;​
use std::future::Future;​
use std::time::Duration;​
use tokio::runtime::Handle;​
use ve_tos_rust_sdk::common::init_tracing_log;​
use ve_tos_rust_sdk::asynchronous::bucket::BucketAPI;​
use ve_tos_rust_sdk::asynchronous::tos;​
use ve_tos_rust_sdk::asynchronous::tos::AsyncRuntime;​
use ve_tos_rust_sdk::bucket::GetBucketRealTimeLogInput;​
use ve_tos_rust_sdk::error::TosError;​
​
#[derive(Debug, Default)]​
pub struct TokioRuntime {}​
​
#[async_trait]​
impl AsyncRuntime for TokioRuntime {​
type JoinError = tokio::task::JoinError;​
async fn sleep(&self, duration: Duration) {​
tokio::time::sleep(duration).await;​
}​
​
fn spawn<'a, F>(&self, future: F) -> BoxFuture<'a, Result<F::Output, Self::JoinError>>​
where​
F: Future + Send + 'static,​
F::Output: Send + 'static,​
{​
Box::pin(Handle::current().spawn(future))​
}​
​
fn block_on<F: Future>(&self, future: F) -> F::Output {​
Handle::current().block_on(future)​
}​
}​
​
#[tokio::main]​
async fn main() {​
let _guard = init_tracing_log("info", "temp/logs", "app.log");​
let ak = env::var("TOS_ACCESS_KEY").unwrap_or("".to_string());​
let sk = env::var("TOS_SECRET_KEY").unwrap_or("".to_string());​
let endpoint = "https://tos-cn-beijing.volces.com";​
let region = "cn-beijing";​
let client = tos::builder::<TokioRuntime>()​
.connection_timeout(3000)​
.request_timeout(10000)​
.max_retry_count(3)​
.ak(ak)​
.sk(sk)​
.region(region)​
.endpoint(endpoint)​
.build().unwrap();​
​
// Create input with specified bucket​
let bucket_name = "example-bucket";​
let input = GetBucketRealTimeLogInput::new(bucket_name);​
​
// Call get bucket real-time log config API​
let result = client.get_bucket_real_time_log(&input).await;​
​
match result {​
Ok(output) => {​
println!("Successfully got real-time log config for bucket: {}", bucket_name);​
println!("Request ID: {}", output.request_id());​
}​
Err(err) => {​
match err {​
TosError::TosClientError { message, .. } => {​
println!("Client error: {}", message);​
}​
TosError::TosServerError { request_id, ec, code, status_code, .. } => {​
println!("Server error: request_id={}, ec={}, code={}, status_code={}", request_id, ec, code, status_code);​
}​
_ => println!("Unknown error: {:?}", err),​
}​
}​
}​
}​
​
Related documentation​
For the API documentation of GetBucketRealTimeLog, see GetBucketRealTimeLog.​
Last updated: 2026.01.06 18:07:30