-
Notifications
You must be signed in to change notification settings - Fork 266
Description
Describe the bug
error[E0277]: the trait bound axum::body::Bytes: HttpBody
is not satisfied because the trait comes from a different crate version
this error comes when I create web app service with axum 0.8



Regression Issue
- Select this option if this issue appears to be a regression.
Expected Behavior
update the htpp-body version
Current Behavior
http-body version too many
Reproduction Steps
it comes with compile time when add aws-sdk-s3 aws-config
aws-config = { version = "1.5.14", features = ["behavior-version-latest"] }
aws-sdk-s3 = { version = "1.69.0"}
axum = { version = "0.8.1" ,features = ["multipart","macros"]}
let client = aws_sdk_s3::Client::new(
&SdkConfig::builder()
.region(Region::new(s3_config.region.clone()))
.endpoint_url(s3_config.endpoint_url.clone())
.behavior_version(BehaviorVersion::latest())
.credentials_provider(SharedCredentialsProvider::new(Credentials::new(
s3_config.access_key_id.clone(),
s3_config.secret_access_key.clone(),
None,
None,
PROVIDER_NAME
)))
.build(),
);
pub async fn upload(&self, data:Bytes, bucket:&str, key:&str) -> CommonResult{
let output = selfclient
.put_object()
.bucket(bucket)
.key(key)
.body(ByteStream::from(data))
.send()
.await?;
let etag = output.e_tag.unwrap_or_else(|| "".to_string());
info!("ETag: {}", etag);
Ok(etag)
}
Possible Solution
No response
Additional Information/Context
No response
Version
aws-config = { version = "1.5.14", features = ["behavior-version-latest"] }
aws-sdk-s3 = { version = "1.69.0"}
Environment details (OS name and version, etc.)
macos
Logs
error[E0277]: the trait bound axum::body::Bytes: HttpBody
is not satisfied because the trait comes from a different crate version
--> src/application/system/service/file_service.rs:75:56
|
75 | Path((,id)): Path<(i64,i64)> )-> impl IntoResponse{
| ________________________________________________________^
76 | | let file = FileDomainService::find_by_id(id).await.unwrap();
77 | | if file.is_none(){
78 | | return Err(StatusCode::NOT_FOUND);
... |
89 | | Ok(response)
90 | | }
| |^ the trait HttpBody
is not implemented for axum::body::Bytes
|
note: there are multiple different versions of crate http_body
in the dependency graph
--> /Users/lijing/.cargo/registry/src/rsproxy.cn-8f6827c7555bfaf8/http-body-1.0.1/src/lib.rs:38:1
|
38 | pub trait Body {
| ^^^^^^^^^^^^^^ this is the required trait
|
::: src/presentation/router/auth_routes.rs:1:5
|
1 | use axum::Router;
| ---- one version of crate http_body
is used here, as a dependency of crate axum_core
|
::: src/infrastructure/utils/aws_s3_util.rs:1:5
|
1 | use aws_config::SdkConfig;
| ---------- one version of crate http_body
is used here, as a dependency of crate aws_smithy_types
|
::: /Users/lijing/.cargo/registry/src/rsproxy.cn-8f6827c7555bfaf8/bytes-1.9.0/src/bytes.rs:102:1
|
102 | pub struct Bytes {
| ---------------- this type doesn't implement the required trait
|
::: /Users/lijing/.cargo/registry/src/rsproxy.cn-8f6827c7555bfaf8/http-body-0.4.6/src/collect.rs:14:1
|
14 | / pin_project! {
15 | | /// Future that resolves into a [Collected
].
16 | | pub struct Collect
17 | | where
... |
24 | | }
25 | | }
| |_- this is the found trait
= help: you can use cargo tree
to explore your dependency tree