feat: Add mtime
as optional ETag algorithm in file backend alongside default md5
#613
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.
What kind of change does this PR introduce?
Fix #612
What is the current behavior?
#612
In the file backend, ETags are generated by calculating the MD5 hash of the entire file contents, which can take several seconds or even more than 10 seconds for larger files. This becomes particularly problematic when utilizing Range requests.
What is the new behavior?
The ETag in the file backend is now generated using only a file's modification time (
mtime
) andsize
. I believe this is sufficient as it follows the same approach used by Nginx (and moreover, the file backend is primarily used in local development).