important dedup fix
- read-only demo server at https://a.ocv.me/pub/demo/
- docker image ╱ similar software ╱ client testbed
there is a discord server with an @everyone
in case of future important updates, such as vulnerabilities (most recently 2023-07-23)
important bugfix ☢️
this version fixes a file deduplication bug which was introduced in v1.13.8, released 2024-08-13
its worst-case outcome is loss of data in the following scenario:
- someone uploads a file into a folder where that filename is already taken, but the file contents are different, and the server already has a copy of that new file elsewhere under a different name
specific example:
- the server has two existing files,
logo.png
andlogo-v2.png
, in the same volume but not necessarily in the same folder, and those files contain different data - you have a local copy of
logo-v2.png
on your laptop, but your local filename islogo.png
- you upload your local
logo.png
onto the server, into the same folder as the server'slogo.png
- because the files contain different data, the server accidentally replaces the contents of
logo.png
with your version
if you have been using the database feature (globally with -e2dsa
or volflag e2ds
), and you suspect you may have hit this bug, then it is a good idea to make a backup of the up2k databases for all your volumes (the files with names starting with up2k.db
) before restarting copyparty and before you do anything else, especially if you do not have serverlogs from far back in time -- if you have either the databases and/or the serverlogs, then it is possible to identify replaced files with some manual work
you can check if you hit the bug using one of the following two approaches:
- if your OS has the gnu find command, do a search for empty files with
find -type f -size 0
- using copyparty (any OS), do the following steps:
- make sure that reindex-on-startup is enabled; either globally with
-e2dsa
or volflage2ds
- then install this new copyparty version
- click the search tab
[🔎]
and type the number0
into themaximum MiB
textbox
- make sure that reindex-on-startup is enabled; either globally with
if you find any empty files with a filename that indicates it was autogenerated to avoid a name collision, for example logo.png-1725040569.239207-kbt0xteO.png
, and the value of the number after logo.png
is larger than 1723507200
(unixtime for 2024-08-13), then this indicates that logo.png
may have been replaced by another upload
if you have the serverlogs from when the original upload of logo.png
was made, then this can be used to identify the original contents of the file that was replaced, and to look for other copies. Please get in touch on the discord for assistance if necessary
new features
- shares: add revival and expiration extension ad2371f
- share-owners can revive expired shares for
--shr-rt
minutes (default 1 day) - ...and extend expiration time by adding 1 minute or 1 hour to the timer
- share-owners can revive expired shares for
- sfx customizer improvements 03b13e8
- improved translations stripper
- add more examples
bugfixes
other changes
- copyparty.exe: update to pyinstaller 6.10.0
- textviewer wordwrapping c4e2b0f
- add logo 7037e73 ee35974