Проблема с поврежденными активами flutter, fastapi, Lambda, APIGateway, S3

#python #amazon-web-services #amazon-s3 #aws-lambda #aws-api-gateway

Вопрос:

Я сталкиваюсь со странной проблемой со следующей настройкой:

Приложение Flutter, которое загружает изображение в серверную часть fastapi, обслуживаемую функцией lambda через APIGateway, которая использует bota3 для загрузки и обслуживания изображения из s3.

Мои маршруты на python выглядят так.

 @router.get("{filePath:path}") async def read_root(filePath, current_user: CognitoClaims = Depends(get_current_user)):  user: User = await get_user(current_user.username)  company: Company = await get_company(user);   try:  response = s3.generate_presigned_url('get_object', Params={  'Bucket': settings.s3_bucket,  'Key': filePath.strip("/")  }, ExpiresIn=3600)  except ClientError as e:  logging.error(e)  return None  return response  @router.post("") async def add_file(current_user: CognitoClaims = Depends(get_current_user), file: UploadFile = File(...)):  user: User = await get_user(current_user.username)  company: Company = await get_company(user);   file_name = file.filename;   full_name = f"{current_user.username}/uploads/{file_name}"   try:  s3.upload_fileobj(file.file, settings.s3_bucket, full_name)    response = s3.generate_presigned_url('get_object', Params={  'Bucket': settings.s3_bucket,  'Key': full_name  }, ExpiresIn=3600);  except ClientError as e:  logging.error(e)  return None    return {  "path": full_name,  'url': response  };   

Все конечные точки и функции работают успешно, но изображения, загруженные в s3, похоже, повреждены.

Самое странное, что я могу идеально использовать эти конечные точки при нажатии с помощью postman, и еще более странно, что он отлично работает локально из приложения flutter. поэтому я могу только предположить, что это проблема, связанная с моей настройкой APIGateway.