- 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
- The script will redirect to you to a minimal installation wizard to set up all required options
- All optional parameters may be set in ```lib/config.local.php```, take a look at ```lib/config.original.php``` to see all default values
- B) Setup without the installation wizard (cli):
- - Just copy ```config.original.php``` to ```config.local.php``` and customize it
+ - Just copy ```lib/config.original.php``` to ```lib/config.local.php``` and customize it
## Upgrade
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
## Security
-```var``` directory contain all files and links. It is randomly named to limit access but you may add better protection to prevent un-authorized access to it.
+```var``` directory contains all files and links. It is randomly named to limit access but you may add better protection to prevent un-authorized access to it.
You have several options:
- Configure a ```.htaccess```
- Move var folder to a place on your server which can't be directly accessed
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.
## Version 4.0.0
-- Removed plain-text password support for admin auth (breaking change). Update `admin_password` option using `echo -n MyNewPassw0rd | sha256sum` command.
+- 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
+