2828import java .util .logging .Level ;
2929import java .util .logging .Logger ;
3030
31+ import static com .databend .client .ClientSettings .DatabendWarehouseHeader ;
3132import static com .databend .client .ClientSettings .X_DATABEND_RELATIVE_PATH ;
3233import static com .databend .client .ClientSettings .X_DATABEND_STAGE_NAME ;
3334import static java .lang .String .format ;
@@ -43,9 +44,15 @@ public class DatabendPresignClientV1
4344 private static final Duration RetryTimeout = Duration .ofMinutes (5 );
4445 private final OkHttpClient client ;
4546 private final String uri ;
47+ private final String warehouse ;
4648 private static final Logger logger = Logger .getLogger (DatabendPresignClientV1 .class .getPackage ().getName ());
4749
4850 public DatabendPresignClientV1 (OkHttpClient client , String uri )
51+ {
52+ this (client , uri , null );
53+ }
54+
55+ public DatabendPresignClientV1 (OkHttpClient client , String uri , String warehouse )
4956 {
5057 Logger .getLogger (OkHttpClient .class .getName ()).setLevel (Level .FINEST );
5158 OkHttpClient .Builder builder = client .newBuilder ();
@@ -90,6 +97,7 @@ public DatabendPresignClientV1(OkHttpClient client, String uri)
9097 return response ;
9198 }).build ();
9299 this .uri = uri ;
100+ this .warehouse = warehouse ;
93101 }
94102
95103 private void uploadFromStream (InputStream inputStream , String stageName , String relativePath , String name , long fileSize )
@@ -100,10 +108,13 @@ private void uploadFromStream(InputStream inputStream, String stageName, String
100108 .setType (MultipartBody .FORM )
101109 .addFormDataPart ("upload" , name , new InputStreamRequestBody (null , inputStream , fileSize ))
102110 .build ();
103- Headers headers = new Headers .Builder ()
111+ Headers . Builder headersBuilder = new Headers .Builder ()
104112 .add (X_DATABEND_STAGE_NAME , stageName )
105- .add (X_DATABEND_RELATIVE_PATH , relativePath )
106- .build ();
113+ .add (X_DATABEND_RELATIVE_PATH , relativePath );
114+ if (this .warehouse != null && !this .warehouse .isEmpty ()) {
115+ headersBuilder .add (DatabendWarehouseHeader , this .warehouse );
116+ }
117+ Headers headers = headersBuilder .build ();
107118
108119 HttpUrl url = HttpUrl .get (this .uri );
109120 url = new HttpUrl .Builder ()
0 commit comments