#27644: FileSystemStorage --- get_created_time method does not work on Unix
------------------------------------------------+------------------------
               Reporter:  Jonathan Verner       |          Owner:  nobody
                   Type:  Bug                   |         Status:  new
              Component:  File uploads/storage  |        Version:  1.10
               Severity:  Normal                |       Keywords:
           Triage Stage:  Unreviewed            |      Has patch:  0
    Needs documentation:  0                     |    Needs tests:  0
Patch needs improvement:  0                     |  Easy pickings:  0
                  UI/UX:  0                     |
------------------------------------------------+------------------------
 The method {{{get_created_time}}} uses {{{os.path.getctime}}} which only
 returns the creation time on Windows. On Unix it returns the **change
 time** , i.e. the last time the inode attributes were modified (see
 [http://stackoverflow.com/questions/237079/how-to-get-file-creation-
 modification-date-times-in-python]). The documentation says that
     For storage systems unable to return the creation time this will raise
 NotImplementedError
 so the correct behaviour would be, IHMO, to raise a
 {{{NotImplementedError}}} on Unix platforms. I am not sure whether the
 method is used anywhere---searching on github only came up with uses in
 tests, docs and the place where it is defined. Also, as noted by a
 commenter on the above stackoverflow question, it doesn't seem to be a
 useful value anyway:

     Frankly, file creation time is usually fairly useless. When you open
 an existing file for write with mode "w", it's not replacing it, it just
 opens the existing file and truncates it. Even though the file contents
 are completely unrelated to whatever it had on creation, you'd still be
 told the file was "created" well before the current version. Conversely,
 editors that use atomic replace on save (original file is replaced by new
 work-in-progress temp file) would show a more recent creation date, even
 if you just deleted one character. Use the modification time, don't grub
 for creation time.

 So it might make sense to remove the method altogether.

--
Ticket URL: <https://code.djangoproject.com/ticket/27644>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/057.c17e658549d9951038f286109f8cbd83%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to