- Shortened URLs using base 64 encoding
- Maximal upload size configurable
- NO database, only use basic PHP
-- Simple language support :gb: :fr: :de: :it: :nl: :ro: :sk: :hu: :cn: :gr: :ru: :es: :tk: :flag_tr: :flag_pt: :flag_br:
+- Simple language support with a lot of langages (help us on [weblate](https://hosted.weblate.org/engage/jirafeau/)!)
- File level [Deduplication](http://en.wikipedia.org/wiki/Data_deduplication) for storage optimization (does store duplicate files only once, but generate multiple links)
- Optional data encryption
- Small administration interface
1. The "Terms of Service" text file changed
* To reuse previous changes to the ToS, move the old ```/tos_text.php``` file to ```/lib/tos.local.txt``` and remove all HTML und PHP Tags, leaving a regular text file
-### from version 2.0.0 to 3.4.1
+### From version 2.0.0 to 3.4.1
There is nothing special to do to update from/to the following versions:
- 2.0.0 -> 3.0.0
- 3.3.0 -> 3.4.0
- 3.4.0 -> 3.4.1
+### From 3.4.1 to 4.0.0
+
+You may have to change your administrator password in your config file as admin password are only stored using sha256 (SHA2).
+To do so, edit `lib/config.local.php` and update `admin_password` option using `echo -n MyNewPassw0rd | sha256sum` command.
+
+Subfolder division changed in Jirafeau storage. You can either start from a fresh `var-` folder or you need to migrate your data.
+
+In order to migrate your existing data:
+1. Be sure to have a working backup of your Jirafeau instance and/or the rest of your hosting before any operation
+2. Go to `var-` folder
+3. Be sure you have read and write permissions on files and folders with your current user
+4. Run the following commands:
+```bash
+# Migrate files folder
+find files -type f ! -name "*_count" | while read f; do bn="$(basename "$f")"; dst="files/${bn:0:8}/${bn:8:8}/${bn:16:8}/${bn:24:8}/"; mkdir -p "$dst"; mv "$f" "$dst" ; mv "${f}_count" "$dst"; done; find files -maxdepth 1 -type d -iname "?" -exec rm -rf {} \;
+# Migrate links folder
+find links -type f | while read link; do bn="$(basename "$link")"; mkdir "links/$bn"; mv "$link" "links/$bn/"; done; find links -maxdepth 1 -type d -iname "?" -exec rm -rf {} \;
+```
+
+### From 4.0.0 to 4.1.1
+
+There is nothing special to do to update from/to the following versions:
+- 4.0.0 -> 4.1.0
+- 4.1.0 -> 4.1.1
+
### Troubleshooting
If you have some troubles, consider the following cases
Of course ! Translations are easy to make and no technical knowledge is required.
-Simply go to [Jirafeau's Weblate](https://hosted.weblate.org/projects/jirafeau/master/).
+Simply go to [Jirafeau's Weblate](https://hosted.weblate.org/engage/jirafeau/).
If you want to add a new language in the list, feel free to contact us or leave a comment in ticket #9.
-We would like to thank all anonymous contributors on weblate. :)
+Thanks to all contributors ! :)
### How do I upgrade my Jirafeau?
When the counter falls to zero, the file is destroyed.
+In order to know if a newly uploaded file already exist, Jirafeau will hash the file using md5 by default but other methods are available (see `file_hash` documentation in `lib/config.original.php`).
+
### What is the difference between "delete link" and "delete file and links" in admin interface?
-As explained in the previous question, files with the same md5 hash are not duplicated and a reference counter stores the number of links pointing to a single file.
+As explained in the previous question, files with the same hash are not duplicated and a reference counter stores the number of links pointing to a single file.
So:
- The button "delete link" will delete the reference to the file but might not destroy the file.
- The button "delete file and links" will delete all references pointing to the file and will destroy the file.
- Docker fix
- Advertise javascript license for LibreJS compatibility
- other minor fixes
+
+## Version 4.0.0
+
+- Removed plain-text password support for admin auth (breaking change).
+- Default folder sub-division to 8 characters (breaking change).
+- New option `upload_ip_nopassword` to allow a list of IP to access Jirafeau without password
+- Bugfix with LibreJS
+- Other minor bug fixes
+- More languages supported
+
+## Version 4.1.0
+
+- Fix upload password and allowed ip (#201)
+- Code refactorisation of IP checking
+- Fix expiration dates
+- Add better support for Accept-Language
+- Cosmetic fixes
+- More languages supported and language fixes
+
+## Version 4.1.1
+
+- Fix lang sanity check
+