diff options
author | Alex <alex@adnab.me> | 2021-04-27 23:15:01 +0200 |
---|---|---|
committer | Alex <alex@adnab.me> | 2021-04-27 23:15:01 +0200 |
commit | 368eb354846790e9fc616d9a26ddc414748d847f (patch) | |
tree | 0fa02a60730f479cbaa87fbd5065d332546449e4 | |
parent | 119217f9f6f904efda33d80f744404c6935ed827 (diff) | |
parent | 642186c53051b9edf8a23073a7fd17d7d7e2b819 (diff) | |
download | garage-368eb354846790e9fc616d9a26ddc414748d847f.tar.gz garage-368eb354846790e9fc616d9a26ddc414748d847f.zip |
Merge pull request 'Correctly encode ampersand' (#61) from bug/ampersand into main
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/61
-rwxr-xr-x | script/test-smoke.sh | 40 | ||||
-rw-r--r-- | src/api/encoding.rs | 3 |
2 files changed, 25 insertions, 18 deletions
diff --git a/script/test-smoke.sh b/script/test-smoke.sh index a2ffcea1..16ab3807 100755 --- a/script/test-smoke.sh +++ b/script/test-smoke.sh @@ -3,6 +3,8 @@ set -ex shopt -s expand_aliases +export LC_ALL=C.UTF-8 +export LANG=C.UTF-8 SCRIPT_FOLDER="`dirname \"$0\"`" REPO_FOLDER="${SCRIPT_FOLDER}/../" @@ -19,41 +21,45 @@ garage status garage key list garage bucket list -dd if=/dev/urandom of=/tmp/garage.1.rnd bs=1k count=2 # < INLINE_THRESHOLD = 3072 bytes -dd if=/dev/urandom of=/tmp/garage.2.rnd bs=1M count=5 -dd if=/dev/urandom of=/tmp/garage.3.rnd bs=1M count=10 +dd if=/dev/urandom of=/tmp/garage.1.rnd bs=1k count=2 # No multipart, inline storage (< INLINE_THRESHOLD = 3072 bytes) +dd if=/dev/urandom of=/tmp/garage.2.rnd bs=1M count=5 # No multipart but file will be chunked +dd if=/dev/urandom of=/tmp/garage.3.rnd bs=1M count=10 # by default, AWS starts using multipart at 8MB echo "s3 api testing..." +awsgrg --version +s3cmd --version +python3 --version + for idx in $(seq 1 3); do - # AWS sends - awsgrg cp /tmp/garage.$idx.rnd s3://eprouvette/garage.$idx.aws - + # AWS sends + awsgrg cp "/tmp/garage.$idx.rnd" "s3://eprouvette/&+-é\"/garage.$idx.aws" + awsgrg ls s3://eprouvette - - awsgrg cp s3://eprouvette/garage.$idx.aws /tmp/garage.$idx.dl + + awsgrg cp "s3://eprouvette/&+-é\"/garage.$idx.aws" "/tmp/garage.$idx.dl" diff /tmp/garage.$idx.rnd /tmp/garage.$idx.dl rm /tmp/garage.$idx.dl - - s3grg get s3://eprouvette/garage.$idx.aws /tmp/garage.$idx.dl + + s3grg get "s3://eprouvette/&+-é\"/garage.$idx.aws" "/tmp/garage.$idx.dl" diff /tmp/garage.$idx.rnd /tmp/garage.$idx.dl rm /tmp/garage.$idx.dl - - awsgrg rm s3://eprouvette/garage.$idx.aws + + awsgrg rm "s3://eprouvette/&+-é\"/garage.$idx.aws" # S3CMD sends - s3grg put /tmp/garage.$idx.rnd s3://eprouvette/garage.$idx.s3cmd + s3grg put "/tmp/garage.$idx.rnd" "s3://eprouvette/&+-é\"/garage.$idx.s3cmd" s3grg ls s3://eprouvette - s3grg get s3://eprouvette/garage.$idx.s3cmd /tmp/garage.$idx.dl + s3grg get "s3://eprouvette/&+-é\"/garage.$idx.s3cmd" "/tmp/garage.$idx.dl" diff /tmp/garage.$idx.rnd /tmp/garage.$idx.dl rm /tmp/garage.$idx.dl - - awsgrg cp s3://eprouvette/garage.$idx.s3cmd /tmp/garage.$idx.dl + + awsgrg cp "s3://eprouvette/&+-é\"/garage.$idx.s3cmd" "/tmp/garage.$idx.dl" diff /tmp/garage.$idx.rnd /tmp/garage.$idx.dl rm /tmp/garage.$idx.dl - s3grg rm s3://eprouvette/garage.$idx.s3cmd + s3grg rm "s3://eprouvette/&+-é\"/garage.$idx.s3cmd" done rm /tmp/garage.{1,2,3}.rnd diff --git a/src/api/encoding.rs b/src/api/encoding.rs index 63c5dee2..b3fbbe34 100644 --- a/src/api/encoding.rs +++ b/src/api/encoding.rs @@ -2,7 +2,8 @@ /// Escape &str for xml inclusion pub fn xml_escape(s: &str) -> String { - s.replace("<", "<") + s.replace("&", "&") + .replace("<", "<") .replace(">", ">") .replace("\"", """) } |