Why
No.
This pull request replaces the browser code that uploads files to S3. The target branch is the white-label hotfix.
The new code uses AWS SDK 3.1147. That SDK adds a CRC32 checksum when the client does not set a checksum option. This client does not set that option. SDK version 2 did not send this checksum.
| File size | What happens |
|---|---|
| Under 5 MB | One PutObject request. The request includes the header x-amz-checksum-crc32. The upload can fail at the start. |
| Over 5 MB | A multipart upload with checksum CRC32. The progress bar can move. The complete request can fail if the browser cannot read x-amz-checksum-crc32. |
I did not upload a file. GitHub shows a clean merge and no checks.
Affected areas
TopFans and each white-label site from this hotfix use the same upload service. A checksum failure stops uploads in all of these areas.
- Posts. Video, reel, audio, image, article, and the other post types.
- Messages. Attachments, automated messages, and comment video.
- Store. Courses, lessons, downloadables, VIP offers, experiences, and merchandise.
- Profile and site pages. Portfolio, welcome message, forum, identity, setup, and white-label images.
- Forms. The file input and the fan CSV import use the same helper.
Before you merge
- Set these two options on the S3 client in
browser-s3-upload.ts. - Delete
src/wls-config.json. The file contains{}. No code reads it. - A person runs the checks below on QA. I did not run them.
requestChecksumCalculation: 'WHEN_REQUIRED',
responseChecksumValidation: 'WHEN_REQUIRED',
The post output name is now statusChange. The parent template uses that name. The SDK loads when an upload starts. A normal page render does not load it.
Human QA
A person must do these checks in a browser on QA. Watch the network tab for x-amz-checksum-crc32 and for a CORS error.
| Check | Pass when |
|---|---|
| Post a JPEG under 5 MB on TopFans. | The image appears. The progress bar reaches the end. The console has no CORS error. |
| Post a video over 5 MB on TopFans. | The upload finishes. The video plays from the CDN URL. |
| Cancel that video while it uploads. | The upload stops. The post does not keep a broken file. |
| Send a message with an image, and one with a video. | Both messages send. Each file opens. |
| Import a fan CSV. | The file URL is a CDN URL. Confirm accepts it. |
| Save one store file. Use a lesson video or a downloadable. | Save succeeds. The file opens. |
| Post a video over 5 MB on one white-label site. | Same result as the TopFans video. |
| Open a post and use the enable toggle. | The toggle still updates. This covers the statusChange rename. |
I read the pull request and the published SDK source. I did not run the app.