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)
Mon, Dec 9, 5:09 PM
Unknown Object (File)
Sat, Dec 7, 2:03 PM
Unknown Object (File)
Mon, Nov 25, 2:44 PM
Unknown Object (File)
Nov 12 2024, 12:15 PM
Unknown Object (File)
Nov 9 2024, 2:08 PM
Unknown Object (File)
Nov 8 2024, 7:55 AM
Unknown Object (File)
Oct 8 2024, 10:41 AM
Unknown Object (File)
Sep 19 2024, 7:53 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