Skip to content

Commit

Permalink
Allow special characters as object key
Browse files Browse the repository at this point in the history
- Modify the method isValidKey to allow special characters
- Create a test case verifying that special characters can be used as
object key
  • Loading branch information
fenos authored and Jason committed Sep 24, 2024
1 parent 4281329 commit c81fa9a
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/storage/limits.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ export async function getFileSizeLimit(
return uploadFileSizeLimit
}

/**
/*true*
* Determines if the image transformation feature is enabled.
* @param tenantId
*/
Expand All @@ -49,7 +49,7 @@ export async function isImageTransformationEnabled(tenantId: string) {
export function isValidKey(key: string): boolean {
// only allow s3 safe characters and characters which require special handling for now
// https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
return key.length > 0 && /^(\w|\/|!|-|\.|\*|'|\(|\)| |&|\$|@|=|;|:|\+|,|\?)*$/.test(key)
return key.length > 0 && /^[\p{L}\p{N}\p{M}\/!.\-*'()& $@=;:+,?]+\.[\p{L}\p{N}\p{M}]+$/u.test(key)
}

/**
Expand Down
9 changes: 9 additions & 0 deletions src/test/storage/limits.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { isValidKey } from "@storage/limits"

describe("Testing limits", () => {
test("accept special characters as s3 object name", () => {
expect(isValidKey("望舌诊病.pdf")).toBe(true)
expect(isValidKey("ÖÄÜ.jpg")).toBe(true)
expect(isValidKey("åäö.png")).toBe(true)
})
})

0 comments on commit c81fa9a

Please sign in to comment.