Sfoglia il codice sorgente

Raise exception if file already exists in DirectoryStorage target

tags/v1.0
JustAnotherArchivist 1 anno fa
parent
commit
a9e838adde
1 ha cambiato i file con 4 aggiunte e 0 eliminazioni
  1. +4
    -0
      codearchiver/storage.py

+ 4
- 0
codearchiver/storage.py Vedi File

@@ -45,11 +45,15 @@ class DirectoryStorage(Storage):

def put(self, filename, index = None):
self._ensure_directory()
#FIXME: Race condition
if os.path.exists((targetFilename := os.path.join(self._directory, os.path.basename(filename)))):
raise FileExistsError(f'{targetFilename} already exists')
_logger.info(f'Moving {filename} to {self._directory}')
shutil.move(filename, self._directory)
if not index:
return
indexFilename = os.path.join(self._directory, f'{filename}.codearchiver-index')
# No need to check for existence here thanks to the 'x' mode
_logger.info(f'Writing index for {filename} to {indexFilename}')
with open(indexFilename, 'x') as fp:
fp.write(index.serialise())


Caricamento…
Annulla
Salva