also use maximum_expire setting in Jyraphe migration site
[coquelicot.git] / README
diff --git a/README b/README
index c98a9ab..839f497 100644 (file)
--- a/README
+++ b/README
@@ -25,6 +25,15 @@ Features
    When uploading, a time limit has to be specified. The file will be
    unavailable once this limit has been reached.
 
+   During a configurable period of time, trying to download the file
+   will return a page saying "too late" instead of "not found".
+
+ * Support for one-time download
+
+   An user might want to allow exactly _one_ download of a file,
+   to more closely replace an email attachment. The file will be removed after
+   the first complete download and concurrent download are prevented.
+
  * Upload progress bar
 
    If the web server tracks upload progress, users having javascript
@@ -92,6 +101,9 @@ Then create the translation catalog through:
 Finally you need to figure out the best way to host a Rack application
 depending on your setup. *evil grin*
 
+Coquelicot is intended to be run on a fully encrypted system and accessible
+only through HTTPS.
+
 Test suite
 ----------
 
@@ -107,6 +119,15 @@ Then, running the test suite is just a matter of typing:
 
     spec test_coquelicot.rb
 
+Migrate from Jyraphe
+--------------------
+
+Jyraphe [1] is another free software web file sharing application.
+Coquelicot provides a migration script to import Jyraphe 0.5 repositories in
+`tools/migrate_jyraphe.rb`.
+
+[1] http://home.gna.org/jyraphe/
+
 Future
 ------
 
@@ -116,21 +137,11 @@ Future
    One could like to also configure no password or integrate with
    webmails or other authentication system.
 
- * One-time download
-
-   An user might want to allow exactly _one_ download of a file,
-   to more closely replace an email attachment.
-
  * More flexible expiration
 
    It might be interesting to also offer a calendar for specifying
    an exact date after which the file will be unavailable.
 
- * Upper-bound expiration time
-
-   Malicious users could specify an arbitrary number of minutes before
-   the file is expired. This should be limited by an upper-bound.
-
  * Hide file size (padding)
 
    There is currently a real close mapping from original file size to
@@ -176,11 +187,14 @@ Once decrypted, content has the following format:
     Filename: "<original file name>"
     Content-Type: "<MIME type>"
     Length: <file length is bytes>
+    One-time-only: <true|false>
     --- 
     <original bytes forming the file content>
 
 Headers must be parseable using the YAML standard.
 
+File are truncated to zero length when they are "expired".
+
 In order to map download URLs to file name, a simple text file ".links"
 is used. It contains a line for each file in the form: