Commit 09c9374f authored by Nugine's avatar Nugine
Browse files

feat(s3s/crypto): extract checksum algorithms

parent 7d90f6ec
Loading
Loading
Loading
Loading
+2 −12
Original line number Diff line number Diff line
@@ -344,7 +344,7 @@ dependencies = [
 "hex",
 "http 0.2.12",
 "http-body 0.4.6",
 "md-5 0.10.6",
 "md-5",
 "pin-project-lite",
 "sha1 0.10.6",
 "sha2 0.10.8",
@@ -1880,16 +1880,6 @@ dependencies = [
 "digest 0.10.7",
]

[[package]]
name = "md-5"
version = "0.11.0-pre.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f97ce75b16c61e8ffe9363ca30092ff9da9daed3c7312296eef978c4ecb2d28"
dependencies = [
 "cfg-if",
 "digest 0.11.0-pre.10",
]

[[package]]
name = "memchr"
version = "2.7.4"
@@ -2444,6 +2434,7 @@ dependencies = [
 "httparse",
 "hyper 1.6.0",
 "itoa",
 "md-5",
 "memchr",
 "mime",
 "nom",
@@ -2534,7 +2525,6 @@ dependencies = [
 "futures",
 "hex-simd",
 "hyper-util",
 "md-5 0.11.0-pre.5",
 "mime",
 "numeric_cast",
 "once_cell",
+0 −6
Original line number Diff line number Diff line
@@ -24,9 +24,3 @@ multiple_crate_versions = "allow"

[profile.release]
debug = "line-tables-only"

[workspace.dependencies]
sha1 = "=0.11.0-pre.5"
sha2 = "=0.11.0-pre.5"
md-5 = "=0.11.0-pre.5"
hmac = "=0.13.0-pre.5"
+0 −1
Original line number Diff line number Diff line
@@ -38,7 +38,6 @@ hyper-util = { version = "0.1.11", optional = true, features = [
    "http2",
    "tokio",
] }
md-5.workspace = true
mime = "0.3.17"
std-next = "0.1.8"
numeric_cast = "0.3.0"
+3 −2
Original line number Diff line number Diff line
@@ -2,7 +2,10 @@ use crate::error::*;
use crate::utils::hex;

use s3s::auth::Credentials;
use s3s::crypto::Checksum;
use s3s::crypto::Md5;
use s3s::dto;
use s3s::dto::PartNumber;

use std::env;
use std::ops::Not;
@@ -13,9 +16,7 @@ use tokio::fs;
use tokio::fs::File;
use tokio::io::{AsyncReadExt, BufWriter};

use md5::{Digest, Md5};
use path_absolutize::Absolutize;
use s3s::dto::PartNumber;
use uuid::Uuid;

#[derive(Debug)]
+5 −4
Original line number Diff line number Diff line
@@ -4,6 +4,8 @@ use crate::utils::*;

use s3s::S3;
use s3s::S3Result;
use s3s::crypto::Checksum;
use s3s::crypto::Md5;
use s3s::dto::*;
use s3s::s3_error;
use s3s::{S3Request, S3Response};
@@ -20,7 +22,6 @@ use tokio::io::AsyncSeekExt;
use tokio_util::io::ReaderStream;

use futures::TryStreamExt;
use md5::{Digest, Md5};
use numeric_cast::NumericCast;
use stdx::default::default;
use tracing::debug;
@@ -484,7 +485,7 @@ impl S3 for FileSystem {
        let object_path = self.get_object_path(&bucket, &key)?;
        let mut file_writer = self.prepare_file_write(&object_path).await?;

        let mut md5_hash = <Md5 as Digest>::new();
        let mut md5_hash = Md5::new();
        let stream = body.inspect_ok(|bytes| {
            md5_hash.update(bytes.as_ref());
            checksum.update(bytes.as_ref());
@@ -573,7 +574,7 @@ impl S3 for FileSystem {

        let file_path = self.resolve_upload_part_path(upload_id, part_number)?;

        let mut md5_hash = <Md5 as Digest>::new();
        let mut md5_hash = Md5::new();
        let stream = body.inspect_ok(|bytes| md5_hash.update(bytes.as_ref()));

        let mut file_writer = self.prepare_file_write(&file_path).await?;
@@ -637,7 +638,7 @@ impl S3 for FileSystem {
        let _ = try_!(src_file.seek(io::SeekFrom::Start(start)).await);
        let body = StreamingBlob::wrap(bytes_stream(ReaderStream::with_capacity(src_file, 4096), content_length_usize));

        let mut md5_hash = <Md5 as Digest>::new();
        let mut md5_hash = Md5::new();
        let stream = body.inspect_ok(|bytes| md5_hash.update(bytes.as_ref()));

        let mut file_writer = self.prepare_file_write(&dst_path).await?;
Loading