Skip to content

Commit

Permalink
Removed anyhow.
Browse files Browse the repository at this point in the history
Signed-off-by: Pavel Kirilin <[email protected]>
  • Loading branch information
s3rius committed Nov 17, 2023
1 parent fb2c390 commit f64eb32
Show file tree
Hide file tree
Showing 23 changed files with 524 additions and 95 deletions.
34 changes: 27 additions & 7 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ path = "src/main.rs"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
anyhow = "1.0.72"
async-trait = "0.1.74"
axum = { git = "https://github.com/tokio-rs/axum.git", rev = "3ff45d9" }
base64 = "0.21.5"
Expand All @@ -35,3 +34,10 @@ tokio = { version = "1.31.0", features = ["full"] }
tokio-util = { version = "0.7.10", features = ["io"] }
uuid = { version = "1.5.0", features = ["v4"] }
rust-s3 = "^0.33"
tower = "0.4.13"
# Hashsums
sha1 = { version = "^0.10.1", features = ["compress"] }
sha2 = { version = "^0.10.1", features = ["compress"] }
md-5 = "^0.10.1"
digest = "^0.10.1"
reqwest = "0.11.22"
2 changes: 1 addition & 1 deletion src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ impl Config {
}
}

pub fn get_url(&self, url: String) -> String {
pub fn get_url(&self, url: &str) -> String {
format!("{}/{url}", self.url)
}
}
10 changes: 5 additions & 5 deletions src/data_storage/base.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ pub trait Storage {
/// It MUST throw errors if connection can't
/// be established or in any other case that might
/// be a problem later on.
async fn prepare(&mut self) -> anyhow::Result<()>;
async fn prepare(&mut self) -> RustusResult<()>;

Check failure on line 21 in src/data_storage/base.rs

View workflow job for this annotation

GitHub Actions / clippy

functions in traits cannot be declared `async`

error[E0706]: functions in traits cannot be declared `async` --> src/data_storage/base.rs:21:5 | 21 | async fn prepare(&mut self) -> RustusResult<()>; | -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | | `async` because of this | = note: `async` trait functions are not currently supported = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait = note: see issue #91611 <https://github.com/rust-lang/rust/issues/91611> for more information

/// Get contents of a file.
///
Expand Down Expand Up @@ -48,7 +48,7 @@ pub trait Storage {
/// # Params
/// `file_info` - info about current file.
/// `bytes` - bytes to append to the file.
async fn add_bytes(&self, file_info: &FileInfo, bytes: Bytes) -> anyhow::Result<()>;
async fn add_bytes(&self, file_info: &FileInfo, bytes: Bytes) -> RustusResult<()>;

Check failure on line 51 in src/data_storage/base.rs

View workflow job for this annotation

GitHub Actions / clippy

functions in traits cannot be declared `async`

error[E0706]: functions in traits cannot be declared `async` --> src/data_storage/base.rs:51:5 | 51 | async fn add_bytes(&self, file_info: &FileInfo, bytes: Bytes) -> RustusResult<()>; | -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | | `async` because of this | = note: `async` trait functions are not currently supported = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait = note: see issue #91611 <https://github.com/rust-lang/rust/issues/91611> for more information

/// Create file in storage.
///
Expand All @@ -58,7 +58,7 @@ pub trait Storage {
///
/// # Params
/// `file_info` - info about current file.
async fn create_file(&self, file_info: &FileInfo) -> anyhow::Result<String>;
async fn create_file(&self, file_info: &FileInfo) -> RustusResult<String>;

Check failure on line 61 in src/data_storage/base.rs

View workflow job for this annotation

GitHub Actions / clippy

functions in traits cannot be declared `async`

error[E0706]: functions in traits cannot be declared `async` --> src/data_storage/base.rs:61:5 | 61 | async fn create_file(&self, file_info: &FileInfo) -> RustusResult<String>; | -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | | `async` because of this | = note: `async` trait functions are not currently supported = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait = note: see issue #91611 <https://github.com/rust-lang/rust/issues/91611> for more information

/// Concatenate files.
///
Expand All @@ -73,7 +73,7 @@ pub trait Storage {
&self,
file_info: &FileInfo,
parts_info: Vec<FileInfo>,
) -> anyhow::Result<()>;
) -> RustusResult<()>;

Check failure on line 76 in src/data_storage/base.rs

View workflow job for this annotation

GitHub Actions / clippy

functions in traits cannot be declared `async`

error[E0706]: functions in traits cannot be declared `async` --> src/data_storage/base.rs:72:5 | 72 | async fn concat_files( | ^---- | | | _____`async` because of this | | 73 | | &self, 74 | | file_info: &FileInfo, 75 | | parts_info: Vec<FileInfo>, 76 | | ) -> RustusResult<()>; | |__________________________^ | = note: `async` trait functions are not currently supported = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait = note: see issue #91611 <https://github.com/rust-lang/rust/issues/91611> for more information

/// Remove file from storage
///
Expand All @@ -82,5 +82,5 @@ pub trait Storage {
///
/// # Params
/// `file_info` - info about current file.
async fn remove_file(&self, file_info: &FileInfo) -> anyhow::Result<()>;
async fn remove_file(&self, file_info: &FileInfo) -> RustusResult<()>;

Check failure on line 85 in src/data_storage/base.rs

View workflow job for this annotation

GitHub Actions / clippy

functions in traits cannot be declared `async`

error[E0706]: functions in traits cannot be declared `async` --> src/data_storage/base.rs:85:5 | 85 | async fn remove_file(&self, file_info: &FileInfo) -> RustusResult<()>; | -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | | `async` because of this | = note: `async` trait functions are not currently supported = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait = note: see issue #91611 <https://github.com/rust-lang/rust/issues/91611> for more information
}
12 changes: 6 additions & 6 deletions src/data_storage/file_storage.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ impl FileStorage {
}
}

pub fn data_file_path(&self, file_id: &str) -> anyhow::Result<PathBuf> {
pub fn data_file_path(&self, file_id: &str) -> RustusResult<PathBuf> {
let dir = self
.data_dir
// We're working wit absolute paths, because tus.io says so.
Expand All @@ -48,7 +48,7 @@ impl Storage for FileStorage {
"file"
}

async fn prepare(&mut self) -> anyhow::Result<()> {
async fn prepare(&mut self) -> RustusResult<()> {

Check failure on line 51 in src/data_storage/file_storage.rs

View workflow job for this annotation

GitHub Actions / clippy

functions in traits cannot be declared `async`

error[E0706]: functions in traits cannot be declared `async` --> src/data_storage/file_storage.rs:51:5 | 51 | async fn prepare(&mut self) -> RustusResult<()> { | -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | | `async` because of this | = note: `async` trait functions are not currently supported = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait = note: see issue #91611 <https://github.com/rust-lang/rust/issues/91611> for more information
// We're creating directory for new files
// if it doesn't already exist.
if !self.data_dir.exists() {
Expand Down Expand Up @@ -78,7 +78,7 @@ impl Storage for FileStorage {
Ok((headers, body).into_response())
}

async fn add_bytes(&self, file_info: &FileInfo, bytes: Bytes) -> anyhow::Result<()> {
async fn add_bytes(&self, file_info: &FileInfo, bytes: Bytes) -> RustusResult<()> {

Check failure on line 81 in src/data_storage/file_storage.rs

View workflow job for this annotation

GitHub Actions / clippy

functions in traits cannot be declared `async`

error[E0706]: functions in traits cannot be declared `async` --> src/data_storage/file_storage.rs:81:5 | 81 | async fn add_bytes(&self, file_info: &FileInfo, bytes: Bytes) -> RustusResult<()> { | -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | | `async` because of this | = note: `async` trait functions are not currently supported = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait = note: see issue #91611 <https://github.com/rust-lang/rust/issues/91611> for more information
// In normal situation this `if` statement is not
// gonna be called, but what if it is ...
if file_info.path.is_none() {
Expand Down Expand Up @@ -108,7 +108,7 @@ impl Storage for FileStorage {
.await?
}

async fn create_file(&self, file_info: &FileInfo) -> anyhow::Result<String> {
async fn create_file(&self, file_info: &FileInfo) -> RustusResult<String> {

Check failure on line 111 in src/data_storage/file_storage.rs

View workflow job for this annotation

GitHub Actions / clippy

functions in traits cannot be declared `async`

error[E0706]: functions in traits cannot be declared `async` --> src/data_storage/file_storage.rs:111:5 | 111 | async fn create_file(&self, file_info: &FileInfo) -> RustusResult<String> { | -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | | `async` because of this | = note: `async` trait functions are not currently supported = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait = note: see issue #91611 <https://github.com/rust-lang/rust/issues/91611> for more information
// New path to file.
let file_path = self.data_file_path(file_info.id.as_str())?;
tokio::task::spawn_blocking(move || {
Expand All @@ -128,7 +128,7 @@ impl Storage for FileStorage {
&self,
file_info: &FileInfo,
parts_info: Vec<FileInfo>,
) -> anyhow::Result<()> {
) -> RustusResult<()> {

Check failure on line 131 in src/data_storage/file_storage.rs

View workflow job for this annotation

GitHub Actions / clippy

functions in traits cannot be declared `async`

error[E0706]: functions in traits cannot be declared `async` --> src/data_storage/file_storage.rs:127:5 | 127 | async fn concat_files( | ^---- | | | _____`async` because of this | | 128 | | &self, 129 | | file_info: &FileInfo, 130 | | parts_info: Vec<FileInfo>, 131 | | ) -> RustusResult<()> { | |_________________________^ | = note: `async` trait functions are not currently supported = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait = note: see issue #91611 <https://github.com/rust-lang/rust/issues/91611> for more information
let force_fsync = self.force_fsync;
let path = file_info.path.as_ref().unwrap().clone();
tokio::task::spawn_blocking(move || {
Expand Down Expand Up @@ -157,7 +157,7 @@ impl Storage for FileStorage {
.await?
}

async fn remove_file(&self, file_info: &FileInfo) -> anyhow::Result<()> {
async fn remove_file(&self, file_info: &FileInfo) -> RustusResult<()> {

Check failure on line 160 in src/data_storage/file_storage.rs

View workflow job for this annotation

GitHub Actions / clippy

functions in traits cannot be declared `async`

error[E0706]: functions in traits cannot be declared `async` --> src/data_storage/file_storage.rs:160:5 | 160 | async fn remove_file(&self, file_info: &FileInfo) -> RustusResult<()> { | -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | | `async` because of this | = note: `async` trait functions are not currently supported = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait = note: see issue #91611 <https://github.com/rust-lang/rust/issues/91611> for more information
let info = file_info.clone();
tokio::task::spawn_blocking(move || {
// Let's remove the file itself.
Expand Down
14 changes: 7 additions & 7 deletions src/data_storage/mod.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use crate::config::Config;
use crate::{config::Config, errors::RustusResult};

pub mod base;
pub mod file_storage;
Expand All @@ -11,7 +11,7 @@ pub enum DataStorageImpl {
}

impl DataStorageImpl {
pub fn new(_config: &Config) -> anyhow::Result<Self> {
pub fn new(_config: &Config) -> RustusResult<Self> {
Ok(Self::File(file_storage::FileStorage::new(
"./data".into(),
"{year}/{month}/{day}/".into(),
Expand All @@ -28,7 +28,7 @@ impl base::Storage for DataStorageImpl {
}
}

async fn prepare(&mut self) -> anyhow::Result<()> {
async fn prepare(&mut self) -> RustusResult<()> {

Check failure on line 31 in src/data_storage/mod.rs

View workflow job for this annotation

GitHub Actions / clippy

functions in traits cannot be declared `async`

error[E0706]: functions in traits cannot be declared `async` --> src/data_storage/mod.rs:31:5 | 31 | async fn prepare(&mut self) -> RustusResult<()> { | -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | | `async` because of this | = note: `async` trait functions are not currently supported = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait = note: see issue #91611 <https://github.com/rust-lang/rust/issues/91611> for more information
match self {
Self::File(file) => file.prepare().await,
Self::S3Hybrid(s3) => s3.prepare().await,
Expand All @@ -50,7 +50,7 @@ impl base::Storage for DataStorageImpl {
&self,
file_info: &crate::models::file_info::FileInfo,
bytes: bytes::Bytes,
) -> anyhow::Result<()> {
) -> RustusResult<()> {

Check failure on line 53 in src/data_storage/mod.rs

View workflow job for this annotation

GitHub Actions / clippy

functions in traits cannot be declared `async`

error[E0706]: functions in traits cannot be declared `async` --> src/data_storage/mod.rs:49:5 | 49 | async fn add_bytes( | ^---- | | | _____`async` because of this | | 50 | | &self, 51 | | file_info: &crate::models::file_info::FileInfo, 52 | | bytes: bytes::Bytes, 53 | | ) -> RustusResult<()> { | |_________________________^ | = note: `async` trait functions are not currently supported = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait = note: see issue #91611 <https://github.com/rust-lang/rust/issues/91611> for more information
match self {
Self::File(file) => file.add_bytes(file_info, bytes).await,
Self::S3Hybrid(s3) => s3.add_bytes(file_info, bytes).await,
Expand All @@ -60,7 +60,7 @@ impl base::Storage for DataStorageImpl {
async fn create_file(
&self,
file_info: &crate::models::file_info::FileInfo,
) -> anyhow::Result<String> {
) -> RustusResult<String> {

Check failure on line 63 in src/data_storage/mod.rs

View workflow job for this annotation

GitHub Actions / clippy

functions in traits cannot be declared `async`

error[E0706]: functions in traits cannot be declared `async` --> src/data_storage/mod.rs:60:5 | 60 | async fn create_file( | ^---- | | | _____`async` because of this | | 61 | | &self, 62 | | file_info: &crate::models::file_info::FileInfo, 63 | | ) -> RustusResult<String> { | |_____________________________^ | = note: `async` trait functions are not currently supported = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait = note: see issue #91611 <https://github.com/rust-lang/rust/issues/91611> for more information
match self {
Self::File(file) => file.create_file(file_info).await,
Self::S3Hybrid(s3) => s3.create_file(file_info).await,
Expand All @@ -71,7 +71,7 @@ impl base::Storage for DataStorageImpl {
&self,
file_info: &crate::models::file_info::FileInfo,
parts_info: Vec<crate::models::file_info::FileInfo>,
) -> anyhow::Result<()> {
) -> RustusResult<()> {

Check failure on line 74 in src/data_storage/mod.rs

View workflow job for this annotation

GitHub Actions / clippy

functions in traits cannot be declared `async`

error[E0706]: functions in traits cannot be declared `async` --> src/data_storage/mod.rs:70:5 | 70 | async fn concat_files( | ^---- | | | _____`async` because of this | | 71 | | &self, 72 | | file_info: &crate::models::file_info::FileInfo, 73 | | parts_info: Vec<crate::models::file_info::FileInfo>, 74 | | ) -> RustusResult<()> { | |_________________________^ | = note: `async` trait functions are not currently supported = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait = note: see issue #91611 <https://github.com/rust-lang/rust/issues/91611> for more information
match self {
Self::File(file) => file.concat_files(file_info, parts_info).await,
Self::S3Hybrid(s3) => s3.concat_files(file_info, parts_info).await,
Expand All @@ -81,7 +81,7 @@ impl base::Storage for DataStorageImpl {
async fn remove_file(
&self,
file_info: &crate::models::file_info::FileInfo,
) -> anyhow::Result<()> {
) -> RustusResult<()> {

Check failure on line 84 in src/data_storage/mod.rs

View workflow job for this annotation

GitHub Actions / clippy

functions in traits cannot be declared `async`

error[E0706]: functions in traits cannot be declared `async` --> src/data_storage/mod.rs:81:5 | 81 | async fn remove_file( | ^---- | | | _____`async` because of this | | 82 | | &self, 83 | | file_info: &crate::models::file_info::FileInfo, 84 | | ) -> RustusResult<()> { | |_________________________^ | = note: `async` trait functions are not currently supported = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait = note: see issue #91611 <https://github.com/rust-lang/rust/issues/91611> for more information
match self {
Self::File(file) => file.remove_file(file_info).await,
Self::S3Hybrid(s3) => s3.remove_file(file_info).await,
Expand Down
12 changes: 6 additions & 6 deletions src/data_storage/s3_hybrid.rs
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ impl S3HybridStorage {
///
/// This function is called to upload file to s3 completely.
/// It streams file directly from disk to s3.
async fn upload_file(&self, file_info: &FileInfo) -> anyhow::Result<()> {
async fn upload_file(&self, file_info: &FileInfo) -> RustusResult<()> {
if file_info.path.is_none() {
return Err(RustusError::UnableToWrite("Cannot get upload path.".into()).into());
}
Expand Down Expand Up @@ -128,7 +128,7 @@ impl Storage for S3HybridStorage {
"s3_hybrid"
}

async fn prepare(&mut self) -> anyhow::Result<()> {
async fn prepare(&mut self) -> RustusResult<()> {

Check failure on line 131 in src/data_storage/s3_hybrid.rs

View workflow job for this annotation

GitHub Actions / clippy

functions in traits cannot be declared `async`

error[E0706]: functions in traits cannot be declared `async` --> src/data_storage/s3_hybrid.rs:131:5 | 131 | async fn prepare(&mut self) -> RustusResult<()> { | -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | | `async` because of this | = note: `async` trait functions are not currently supported = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait = note: see issue #91611 <https://github.com/rust-lang/rust/issues/91611> for more information
Ok(())
}

Expand All @@ -150,7 +150,7 @@ impl Storage for S3HybridStorage {
Ok(([disp.0, disp.1], body).into_response())
}

async fn add_bytes(&self, file_info: &FileInfo, bytes: Bytes) -> anyhow::Result<()> {
async fn add_bytes(&self, file_info: &FileInfo, bytes: Bytes) -> RustusResult<()> {

Check failure on line 153 in src/data_storage/s3_hybrid.rs

View workflow job for this annotation

GitHub Actions / clippy

functions in traits cannot be declared `async`

error[E0706]: functions in traits cannot be declared `async` --> src/data_storage/s3_hybrid.rs:153:5 | 153 | async fn add_bytes(&self, file_info: &FileInfo, bytes: Bytes) -> RustusResult<()> { | -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | | `async` because of this | = note: `async` trait functions are not currently supported = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait = note: see issue #91611 <https://github.com/rust-lang/rust/issues/91611> for more information
let part_len = bytes.len();
self.local_storage.add_bytes(file_info, bytes).await?;
// If upload is complete. Upload the resulting file onto S3.
Expand All @@ -161,19 +161,19 @@ impl Storage for S3HybridStorage {
Ok(())
}

async fn create_file(&self, file_info: &FileInfo) -> anyhow::Result<String> {
async fn create_file(&self, file_info: &FileInfo) -> RustusResult<String> {

Check failure on line 164 in src/data_storage/s3_hybrid.rs

View workflow job for this annotation

GitHub Actions / clippy

functions in traits cannot be declared `async`

error[E0706]: functions in traits cannot be declared `async` --> src/data_storage/s3_hybrid.rs:164:5 | 164 | async fn create_file(&self, file_info: &FileInfo) -> RustusResult<String> { | -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | | `async` because of this | = note: `async` trait functions are not currently supported = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait = note: see issue #91611 <https://github.com/rust-lang/rust/issues/91611> for more information
self.local_storage.create_file(file_info).await
}

async fn concat_files(
&self,
_file_info: &FileInfo,
_parts_info: Vec<FileInfo>,
) -> anyhow::Result<()> {
) -> RustusResult<()> {

Check failure on line 172 in src/data_storage/s3_hybrid.rs

View workflow job for this annotation

GitHub Actions / clippy

functions in traits cannot be declared `async`

error[E0706]: functions in traits cannot be declared `async` --> src/data_storage/s3_hybrid.rs:168:5 | 168 | async fn concat_files( | ^---- | | | _____`async` because of this | | 169 | | &self, 170 | | _file_info: &FileInfo, 171 | | _parts_info: Vec<FileInfo>, 172 | | ) -> RustusResult<()> { | |_________________________^ | = note: `async` trait functions are not currently supported = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait = note: see issue #91611 <https://github.com/rust-lang/rust/issues/91611> for more information
Err(RustusError::Unimplemented("Hybrid s3 cannot concat files.".into()).into())
}

async fn remove_file(&self, file_info: &FileInfo) -> anyhow::Result<()> {
async fn remove_file(&self, file_info: &FileInfo) -> RustusResult<()> {

Check failure on line 176 in src/data_storage/s3_hybrid.rs

View workflow job for this annotation

GitHub Actions / clippy

functions in traits cannot be declared `async`

error[E0706]: functions in traits cannot be declared `async` --> src/data_storage/s3_hybrid.rs:176:5 | 176 | async fn remove_file(&self, file_info: &FileInfo) -> RustusResult<()> { | -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | | `async` because of this | = note: `async` trait functions are not currently supported = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait = note: see issue #91611 <https://github.com/rust-lang/rust/issues/91611> for more information
if Some(file_info.offset) == file_info.length {
self.bucket
.delete_object(self.get_s3_key(file_info))
Expand Down
Loading

0 comments on commit f64eb32

Please sign in to comment.