Revision 41a57aab lib/backend.py
b/lib/backend.py | ||
---|---|---|
26 | 26 |
import os.path |
27 | 27 |
import shutil |
28 | 28 |
import time |
29 |
import tempfile |
|
30 | 29 |
import stat |
31 | 30 |
import errno |
32 | 31 |
import re |
... | ... | |
939 | 938 |
" upload targets: '%s'" % file_name) |
940 | 939 |
return False |
941 | 940 |
|
942 |
dir_name, small_name = os.path.split(file_name) |
|
943 |
fd, new_name = tempfile.mkstemp('.new', small_name, dir_name) |
|
944 |
# here we need to make sure we remove the temp file, if any error |
|
945 |
# leaves it in place |
|
946 |
try: |
|
947 |
os.chown(new_name, uid, gid) |
|
948 |
os.chmod(new_name, mode) |
|
949 |
os.write(fd, data) |
|
950 |
os.fsync(fd) |
|
951 |
os.utime(new_name, (atime, mtime)) |
|
952 |
os.rename(new_name, file_name) |
|
953 |
finally: |
|
954 |
os.close(fd) |
|
955 |
utils.RemoveFile(new_name) |
|
941 |
utils.WriteFile(file_name, data=data, mode=mode, uid=uid, gid=gid, |
|
942 |
atime=atime, mtime=mtime) |
|
956 | 943 |
return True |
957 | 944 |
|
958 | 945 |
|
Also available in: Unified diff