fix(storage-vercel-blob): filename is incorrectly stored encoded when addRandomSuffix is true (#13746)

Previously, if `addRandomSuffix` is set to true, the filename would be
stored URL-encoded in the database:

<img width="2212" height="140" alt="Screenshot 2025-09-08 at 18 47
50@2x"
src="https://github.com/user-attachments/assets/1b001e30-0154-4764-a2e9-b7d8bf729581"
/>

If in addition to that, if you set `disablePayloadAccessControl: true`,
Payload will url-encode the already url-encoded filename on read,
leading to an error.

This PR fixes this issue by always decoding the filename before storing
it in the database, so that they're always stored unencoded, no matter
if `addRandomSuffix` is set or not:

<img width="1730" height="184" alt="Screenshot 2025-09-08 at 18 49
29@2x"
src="https://github.com/user-attachments/assets/44328bfa-e489-4247-9e9b-7ddc6e271afb"
/>


---
- To see the specific tasks where the Asana app for GitHub is being
used, see below:
  - https://app.asana.com/0/0/1211177878397844
This commit is contained in:
Alessio Gravili
2025-09-08 19:14:29 -07:00
committed by GitHub
parent d2d2df4408
commit b2f9d4e9a4

View File

@@ -31,7 +31,7 @@ export const getHandleUpload = ({
// Get filename with suffix from returned url // Get filename with suffix from returned url
if (addRandomSuffix) { if (addRandomSuffix) {
data.filename = result.url.replace(`${baseUrl}/`, '') data.filename = decodeURIComponent(result.url.replace(`${baseUrl}/`, ''))
} }
return data return data