@@ -252,14 +252,16 @@ class _QueryParams(BaseModel):
252252 file_upload_schema = FileUploadSchema .model_validate (data )
253253 # NOTE: since storage is fastapi-based it returns file_id not url encoded and aiohttp does not like it
254254 # /v0/locations/{location_id}/files/{file_id:non-encoded-containing-slashes}:complete --> /v0/storage/locations/{location_id}/files/{file_id:non-encode}:complete
255-
255+ storage_encoded_file_id = quote ( path_params . file_id , safe = "/" )
256256 file_upload_schema .links .complete_upload = _from_storage_url (
257257 request ,
258258 file_upload_schema .links .complete_upload ,
259- url_encode = path_params . file_id ,
259+ url_encode = storage_encoded_file_id ,
260260 )
261261 file_upload_schema .links .abort_upload = _from_storage_url (
262- request , file_upload_schema .links .abort_upload , url_encode = path_params .file_id
262+ request ,
263+ file_upload_schema .links .abort_upload ,
264+ url_encode = storage_encoded_file_id ,
263265 )
264266 return create_data_response (jsonable_encoder (file_upload_schema ), status = status )
265267
@@ -282,9 +284,10 @@ class _PathParams(BaseModel):
282284 request , "POST" , body = body_item .model_dump ()
283285 )
284286 data , _ = unwrap_envelope (payload )
287+ storage_encoded_file_id = quote (path_params .file_id , safe = "/" )
285288 file_upload_complete = FileUploadCompleteResponse .model_validate (data )
286289 file_upload_complete .links .state = _from_storage_url (
287- request , file_upload_complete .links .state , url_encode = path_params . file_id
290+ request , file_upload_complete .links .state , url_encode = storage_encoded_file_id
288291 )
289292 return create_data_response (jsonable_encoder (file_upload_complete ), status = status )
290293
0 commit comments