From 797b665939a8c9f5644d12d3aa855f4a073685ae Mon Sep 17 00:00:00 2001 From: Yuhao Su <31772373+yuhao-su@users.noreply.github.com> Date: Thu, 7 Mar 2024 22:39:12 -0600 Subject: [PATCH] fix --- src/connector/src/aws_utils.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/connector/src/aws_utils.rs b/src/connector/src/aws_utils.rs index 4f9b1bd08ae57..978101fecaf32 100644 --- a/src/connector/src/aws_utils.rs +++ b/src/connector/src/aws_utils.rs @@ -15,6 +15,7 @@ use std::collections::HashMap; use std::time::Duration; +use anyhow::anyhow; use aws_config::timeout::TimeoutConfig; use aws_sdk_s3::error::DisplayErrorContext; use aws_sdk_s3::{client as s3_client, config as s3_config}; @@ -112,13 +113,16 @@ pub async fn load_file_descriptor_from_s3( let bucket = location .domain() .ok_or_else(|| RwError::from(InternalError(format!("Illegal file path {}", location))))?; - let key = location.path().replace('/', ""); + let key = location + .path() + .strip_prefix('/') + .ok_or_else(|| anyhow!("s3 url {location} should have a '/' at the start of path."))?; let sdk_config = config.build_config().await?; let s3_client = s3_client(&sdk_config, Some(default_conn_config())); let response = s3_client .get_object() .bucket(bucket.to_string()) - .key(&key) + .key(key) .send() .await .map_err(|e| {