Allow specifying custom tempdir for files.download#1366
Merged
Fizzadar merged 2 commits intopyinfra-dev:3.xfrom Jun 9, 2025
Merged
Allow specifying custom tempdir for files.download#1366Fizzadar merged 2 commits intopyinfra-dev:3.xfrom
Fizzadar merged 2 commits intopyinfra-dev:3.xfrom
Conversation
Contributor
Author
|
The failing tests are unrelated to my changes. |
c43638d to
ed8550d
Compare
ed8550d to
6803928
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This introduces a new argument to the
files.downloadoperation:temp_dir, which allows the user to specify a custom temporary directory for downloading into.I know that
TEMP_DIRexists as an (undocumented) config option, but sinceHost._get_temp_directoryis memoized, it's not feasible to set this option only for certain operations.My use case is downloading very large files (> 100 GB) into specific volumes on the server, which are backed by different filesystems and have some constraints regarding free space. The default of downloading everything into
/tmp(or whatever) doesn't work because it would fill up the root partition before the download even finishes, but settingTEMP_DIRto different directories throughout a single deploy is also not really possible without resorting to hacks, afaics.To allow customizing the temporary directory,
Host.get_temp_filenamealso gained a (keyword-only, optional) new argumenttemp_directory.