Page MenuHomePhabricator

Don't compute MIME type of noninitial chunks from `diffusion.filecontentquery`
ClosedPublic

Authored by epriestley on Jun 19 2017, 9:45 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Mar 21, 8:17 PM
Unknown Object (File)
Sun, Mar 10, 10:17 PM
Unknown Object (File)
Feb 24 2024, 5:09 PM
Unknown Object (File)
Jan 30 2024, 5:20 PM
Unknown Object (File)
Jan 5 2024, 5:21 AM
Unknown Object (File)
Jan 1 2024, 5:22 AM
Unknown Object (File)
Dec 27 2023, 11:31 AM
Unknown Object (File)
Dec 21 2023, 7:44 PM
Subscribers
None

Details

Summary

Ref T12857. This is generally fairly fuzzy for now, but here's something concrete: when we build a large file with diffusion.filecontentquery, we compute the MIME type of all chunks, not just the initial chunk.

Instead, pass a dummy MIME type to non-initial chunks so we don't try to compute them. This mirrors logic elsewhere, in file.uploadchunk. This should perhaps be centralized at some point, but it's a bit tricky since the file doesn't know that it's a chunk until later.

Also, clean up the TempFile immediately -- this shouldn't actually affect anything, but we don't need it to live any longer than this.

Test Plan
  • Made hashFileContent() return null to skip the chunk cache.
  • Added phlog() to the MIME type computation.
  • Loaded a 12MB file in Diffusion.
  • Before patch: Saw 3x MIME type computations, one for each 4MB chunk.
  • After patch: Saw 1x MIME type computation, for initial chunk only.

Diff Detail

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
Tests Not Applicable