diff --git a/fixtures/test-multiple-files-upload-not-found/config.toml b/fixtures/test-multiple-files-upload-not-found/config.toml new file mode 100644 index 0000000..a94fcc3 --- /dev/null +++ b/fixtures/test-multiple-files-upload-not-found/config.toml @@ -0,0 +1,9 @@ +[server] +address = "127.0.0.1:8000" +max_content_length = "10MB" +upload_path = "./upload" + +[paste] +default_extension = "txt" +duplicate_files = true +delete_expired_files = { enabled = true, interval = "1h" } diff --git a/fixtures/test-multiple-files-upload-not-found/test.sh b/fixtures/test-multiple-files-upload-not-found/test.sh new file mode 100755 index 0000000..3441e30 --- /dev/null +++ b/fixtures/test-multiple-files-upload-not-found/test.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +content="test data" + +setup() { + echo "$content" > file +} + +run_test() { + file_url=$(curl -s -F "file=@file" -H "expire:2s" localhost:8000) + file_url=$(curl -s -F "file=@file" -H "expire:1s" localhost:8000) + sleep 2 + file_url=$(curl -s -F "file=@file" -H "expire:1m" localhost:8000) + test "$content" = "$(curl -s $file_url)" +} + +teardown() { + rm file + rm -r upload +} diff --git a/src/util.rs b/src/util.rs index d404cfc..ebc3c9d 100644 --- a/src/util.rs +++ b/src/util.rs @@ -37,7 +37,7 @@ pub fn glob_match_file(mut path: PathBuf) -> Result { ); if let Some(glob_path) = glob(&format!("{}.[0-9]*", path.to_string_lossy())) .map_err(error::ErrorInternalServerError)? - .next() + .last() { let glob_path = glob_path.map_err(error::ErrorInternalServerError)?; if let Some(extension) = glob_path