﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
28200	Do not touch hash-designated files which already exist at the destination storage	Michal Krupa	nobody	"It seems a little silly that, even though local file copies are used to prevent needing to fetch files from remote destinations, files still get replaced even when they already exist.

In example, a remote storage implementation like S3 gets queried for the file, the file gets removed, and then replaced. With the boto3 library, this means touching the file initially (HEAD), a second request to DELETE the file, and yet a third to PUT the new file. Since filenames for hashed files are computed based on the contents of the files, this seems like an unnecessary 3 requests for every time static assets get processed. 

Since a matching hash provides file integrity verification, I propose that the logic for copying hash-designated files be skipped all together.

PR Available here - https://github.com/django/django/pull/8496"	Cleanup/optimization	new	contrib.staticfiles	1.11	Normal		staticfiles, storage, remote		Accepted	1	0	0	1	0	0
