filebrowser/sites.py で、アップロード/アップロードの処理時にこのフックを作成できます。
def _upload_file(self, request):
"""
Upload file to the server.
"""
if request.method == "POST":
folder = request.GET.get('folder', '')
if len(request.FILES) == 0:
return HttpResponseBadRequest('Invalid request! No files included.')
if len(request.FILES) > 1:
return HttpResponseBadRequest('Invalid request! Multiple files included.')
filedata = list(request.FILES.values())[0]
fb_uploadurl_re = re.compile(r'^.*(%s)' % reverse("filebrowser:fb_upload", current_app=self.name))
folder = fb_uploadurl_re.sub('', folder)
path = os.path.join(self.directory, folder)
# we convert the filename before uploading in order
# to check for existing files/folders
file_name = convert_filename(filedata.name)
filedata.name = file_name
file_path = os.path.join(path, file_name
....
ここで file_path を好きなように変更するか、ファイル名を変更できます。
ファイルが上書きされないようにしたいだけの場合は、settings.py で次のように FILEBROWSER_OVERWRITE_EXISTING フラグを設定できます。
FILEBROWSER_OVERWRITE_EXISTING = False
これにより、ファイルを編集するときに一意の名前を付けることができます。また、filebrowser/utils.py で定義されている filebrowsers convert_filename メソッドを使用して、新しいアップロードでファイル名が一意の名前に変換されます。
filebrowser 設定の詳細については、こちらを参照してください。お役に立てれば :)