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 new unit test that verifies special characters are now
  allowed as object key
  • Loading branch information
Jason committed Sep 24, 2024
1 parent bf91ce2 commit f616e44
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/storage/limits.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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/db/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 f616e44

Please sign in to comment.