aboutsummaryrefslogtreecommitdiff
path: root/src/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/api')
-rw-r--r--src/api/api_server.rs35
-rw-r--r--src/api/s3_delete.rs5
-rw-r--r--src/api/s3_get.rs10
-rw-r--r--src/api/s3_put.rs10
-rw-r--r--src/api/signature.rs4
5 files changed, 31 insertions, 33 deletions
diff --git a/src/api/api_server.rs b/src/api/api_server.rs
index 52031ae0..d51b5a28 100644
--- a/src/api/api_server.rs
+++ b/src/api/api_server.rs
@@ -39,7 +39,7 @@ pub async fn run_api_server(
}
});
- let server = Server::bind(&addr).serve(service);
+ let server = Server::bind(addr).serve(service);
let graceful = server.with_graceful_shutdown(shutdown_signal);
info!("API server listening on http://{}", addr);
@@ -88,8 +88,8 @@ async fn handler_inner(garage: Arc<Garage>, req: Request<Body>) -> Result<Respon
let (bucket, key) = parse_bucket_key(&path)?;
let allowed = match req.method() {
- &Method::HEAD | &Method::GET => api_key.allow_read(&bucket),
- _ => api_key.allow_write(&bucket),
+ &Method::HEAD | &Method::GET => api_key.allow_read(bucket),
+ _ => api_key.allow_write(bucket),
};
if !allowed {
return Err(Error::Forbidden(
@@ -109,11 +109,11 @@ async fn handler_inner(garage: Arc<Garage>, req: Request<Body>) -> Result<Respon
match *req.method() {
Method::HEAD => {
// HeadObject query
- Ok(handle_head(garage, &req, &bucket, &key).await?)
+ Ok(handle_head(garage, &req, bucket, key).await?)
}
Method::GET => {
// GetObject query
- Ok(handle_get(garage, &req, &bucket, &key).await?)
+ Ok(handle_get(garage, &req, bucket, key).await?)
}
Method::PUT => {
if params.contains_key(&"partnumber".to_string())
@@ -125,8 +125,8 @@ async fn handler_inner(garage: Arc<Garage>, req: Request<Body>) -> Result<Respon
Ok(handle_put_part(
garage,
req,
- &bucket,
- &key,
+ bucket,
+ key,
part_number,
upload_id,
content_sha256,
@@ -136,46 +136,43 @@ async fn handler_inner(garage: Arc<Garage>, req: Request<Body>) -> Result<Respon
// CopyObject query
let copy_source = req.headers().get("x-amz-copy-source").unwrap().to_str()?;
let copy_source =
- percent_encoding::percent_decode_str(&copy_source).decode_utf8()?;
+ percent_encoding::percent_decode_str(copy_source).decode_utf8()?;
let (source_bucket, source_key) = parse_bucket_key(&copy_source)?;
- if !api_key.allow_read(&source_bucket) {
+ if !api_key.allow_read(source_bucket) {
return Err(Error::Forbidden(format!(
"Reading from bucket {} not allowed for this key",
source_bucket
)));
}
let source_key = source_key.ok_or_bad_request("No source key specified")?;
- Ok(
- handle_copy(garage, &req, &bucket, &key, &source_bucket, &source_key)
- .await?,
- )
+ Ok(handle_copy(garage, &req, bucket, key, source_bucket, source_key).await?)
} else {
// PutObject query
- Ok(handle_put(garage, req, &bucket, &key, content_sha256).await?)
+ Ok(handle_put(garage, req, bucket, key, content_sha256).await?)
}
}
Method::DELETE => {
if params.contains_key(&"uploadid".to_string()) {
// AbortMultipartUpload query
let upload_id = params.get("uploadid").unwrap();
- Ok(handle_abort_multipart_upload(garage, &bucket, &key, upload_id).await?)
+ Ok(handle_abort_multipart_upload(garage, bucket, key, upload_id).await?)
} else {
// DeleteObject query
- Ok(handle_delete(garage, &bucket, &key).await?)
+ Ok(handle_delete(garage, bucket, key).await?)
}
}
Method::POST => {
if params.contains_key(&"uploads".to_string()) {
// CreateMultipartUpload call
- Ok(handle_create_multipart_upload(garage, &req, &bucket, &key).await?)
+ Ok(handle_create_multipart_upload(garage, &req, bucket, key).await?)
} else if params.contains_key(&"uploadid".to_string()) {
// CompleteMultipartUpload call
let upload_id = params.get("uploadid").unwrap();
Ok(handle_complete_multipart_upload(
garage,
req,
- &bucket,
- &key,
+ bucket,
+ key,
upload_id,
content_sha256,
)
diff --git a/src/api/s3_delete.rs b/src/api/s3_delete.rs
index efe325ae..425f86d7 100644
--- a/src/api/s3_delete.rs
+++ b/src/api/s3_delete.rs
@@ -55,7 +55,8 @@ async fn handle_delete_internal(
);
garage.object_table.insert(&object).await?;
- return Ok((deleted_version, version_uuid));
+
+ Ok((deleted_version, version_uuid))
}
pub async fn handle_delete(
@@ -82,7 +83,7 @@ pub async fn handle_delete_objects(
let body = hyper::body::to_bytes(req.into_body()).await?;
verify_signed_content(content_sha256, &body[..])?;
- let cmd_xml = roxmltree::Document::parse(&std::str::from_utf8(&body)?)?;
+ let cmd_xml = roxmltree::Document::parse(std::str::from_utf8(&body)?)?;
let cmd = parse_delete_objects_xml(&cmd_xml).ok_or_bad_request("Invalid delete XML query")?;
let mut ret_deleted = Vec::new();
diff --git a/src/api/s3_get.rs b/src/api/s3_get.rs
index b804d8ee..10d6591f 100644
--- a/src/api/s3_get.rs
+++ b/src/api/s3_get.rs
@@ -106,12 +106,12 @@ pub async fn handle_head(
_ => unreachable!(),
};
- if let Some(cached) = try_answer_cached(&version, version_meta, req) {
+ if let Some(cached) = try_answer_cached(version, version_meta, req) {
return Ok(cached);
}
let body: Body = Body::empty();
- let response = object_headers(&version, version_meta)
+ let response = object_headers(version, version_meta)
.header("Content-Length", format!("{}", version_meta.size))
.status(StatusCode::OK)
.body(body)
@@ -149,7 +149,7 @@ pub async fn handle_get(
ObjectVersionData::FirstBlock(meta, _) => meta,
};
- if let Some(cached) = try_answer_cached(&last_v, last_v_meta, req) {
+ if let Some(cached) = try_answer_cached(last_v, last_v_meta, req) {
return Ok(cached);
}
@@ -179,7 +179,7 @@ pub async fn handle_get(
.await;
}
- let resp_builder = object_headers(&last_v, last_v_meta)
+ let resp_builder = object_headers(last_v, last_v_meta)
.header("Content-Length", format!("{}", last_v_meta.size))
.status(StatusCode::OK);
@@ -190,7 +190,7 @@ pub async fn handle_get(
Ok(resp_builder.body(body)?)
}
ObjectVersionData::FirstBlock(_, first_block_hash) => {
- let read_first_block = garage.block_manager.rpc_get_block(&first_block_hash);
+ let read_first_block = garage.block_manager.rpc_get_block(first_block_hash);
let get_next_blocks = garage.version_table.get(&last_v.uuid, &EmptyKey);
let (first_block, version) = futures::try_join!(read_first_block, get_next_blocks)?;
diff --git a/src/api/s3_put.rs b/src/api/s3_put.rs
index aa285232..5eae3bf5 100644
--- a/src/api/s3_put.rs
+++ b/src/api/s3_put.rs
@@ -193,8 +193,8 @@ async fn read_and_put_blocks(
let mut next_offset = first_block.len();
let mut put_curr_version_block = put_block_meta(
- &garage,
- &version,
+ garage,
+ version,
part_number,
0,
first_block_hash,
@@ -213,8 +213,8 @@ async fn read_and_put_blocks(
let block_hash = blake2sum(&block[..]);
let block_len = block.len();
put_curr_version_block = put_block_meta(
- &garage,
- &version,
+ garage,
+ version,
part_number,
next_offset as u64,
block_hash,
@@ -437,7 +437,7 @@ pub async fn handle_complete_multipart_upload(
let body = hyper::body::to_bytes(req.into_body()).await?;
verify_signed_content(content_sha256, &body[..])?;
- let body_xml = roxmltree::Document::parse(&std::str::from_utf8(&body)?)?;
+ let body_xml = roxmltree::Document::parse(std::str::from_utf8(&body)?)?;
let body_list_of_parts = parse_complete_multpart_upload_body(&body_xml)
.ok_or_bad_request("Invalid CompleteMultipartUpload XML")?;
debug!(
diff --git a/src/api/signature.rs b/src/api/signature.rs
index fd7ad33b..53ca2ce5 100644
--- a/src/api/signature.rs
+++ b/src/api/signature.rs
@@ -70,7 +70,7 @@ pub async fn check_signature(
let canonical_request = canonical_request(
request.method(),
&request.uri().path().to_string(),
- &canonical_query_string(&request.uri()),
+ &canonical_query_string(request.uri()),
&headers,
&authorization.signed_headers,
&authorization.content_sha256,
@@ -252,7 +252,7 @@ fn canonical_request(
method.as_str(),
url_path,
canonical_query_string,
- &canonical_header_string(&headers, signed_headers),
+ &canonical_header_string(headers, signed_headers),
"",
signed_headers,
content_sha256,