Synchronet v3.19b-Win32 (install) has been released (Jan-2022).

You can donate to the Synchronet project using PayPal.

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
history:newfilebase [2022/01/02 13:28] – created digital manhistory:newfilebase [2024/09/14 13:50] (current) – [Long Filenames] Mention characters sets and case (in)sensitivity of filenames digital man
Line 1: Line 1:
-====== New File Base (introduced in 3.19) ======+====== New Filebase (introduced in v3.19) ======
  
-The new FileBase files are stored in the same database location as before +The new filebase files are stored in the same database location as before 
-(e.g. data/dirs/), but the file extensions are different:+(e.g. ''[[dir:data]]/dirs/''), but the file extensions and storage formats are different:
  
-^ Purpose                  ^   Old    ^   New    ^ +^ Purpose                  ^   Old        ^   New    ^ 
-| Index (e.g. filenames)   | code.ixb | code.sid | +| Index (e.g. filenames)   ''code.ixb'' ''code.sid'' 
-| Data (e.g. descriptions) | code.dat | code.shd | +| Data (e.g. descriptions) | ''code.dat'' ''code.shd'' 
-| Extended Descriptions    | code.exb | code.sdt | +| Extended Descriptions    | ''code.exb'' ''code.sdt'' 
-| Metadata                 | code.dab | code.ini | +| Metadata                 ''code.dab'' ''code.ini'' 
-| Allocation Tables        | N/A      | code.sda and code.sha |+| Allocation Tables        | N/A          ''code.sda'' and ''code.sha'' |
  
 If these new filebase file extensions look familiar to you, that's because If these new filebase file extensions look familiar to you, that's because
Line 29: Line 29:
 time during the upgrade process), you can turn off file hashing in the time during the upgrade process), you can turn off file hashing in the
 per-directory Toggle Options in SCFG->File Areas. You would have to perform per-directory Toggle Options in SCFG->File Areas. You would have to perform
-this opt-out for the directories of choice *before* you run 'jsexec update' /+this opt-out for the directories of choice **before** you run 'jsexec update' /
 'upgrade_to_v319'. You should not normally need to run 'upgrade_to_v319'. 'upgrade_to_v319'. You should not normally need to run 'upgrade_to_v319'.
  
Line 53: Line 53:
 to accommodate the limited width of a traditional BBS user terminal. An effort to accommodate the limited width of a traditional BBS user terminal. An effort
 is made to always display the full file extension/suffix however is made to always display the full file extension/suffix however
-(e.g. "longfilename.jpeg" may be *displayedas "longfil.jpeg").+(e.g. "longfilename.jpeg" may be //displayed// as "longfil.jpeg").
  
 Note: only 64 characters of each filename (always including any extension) are Note: only 64 characters of each filename (always including any extension) are
Line 59: Line 59:
 64K characters in length, is stored intact in the filebase. 64K characters in length, is stored intact in the filebase.
  
-Filenames with /extensions/ longer than 3 characters, e.g. ".jpeg", ".tar.gz",+Filenames with //extensions// longer than 3 characters, e.g. ".jpeg", ".tar.gz",
 can be added to the filebases, but the configurable compressible, extractable, can be added to the filebases, but the configurable compressible, extractable,
 and viewable file types/extensions remain limited to 3 characters in SCFG. and viewable file types/extensions remain limited to 3 characters in SCFG.
 Similarly, a maximum length of 3 character archive "types" are stored per BBS Similarly, a maximum length of 3 character archive "types" are stored per BBS
 user record (for each user's QWK packet format and temp archive preference). user record (for each user's QWK packet format and temp archive preference).
 +
 +*Note*:
 +In Synchronet v3.20, the maximum length of configurable file extensions was
 +increased from 3 to 15 characters.
  
 Since support for the viewing and extraction of several common archive formats Since support for the viewing and extraction of several common archive formats
Line 69: Line 73:
 file extensions (e.g. ".tar.gz" instead of ".tgz") may still be successfully file extensions (e.g. ".tar.gz" instead of ".tgz") may still be successfully
 extracted or viewed. extracted or viewed.
 +
 +===== Filenames =====
 +Filenames should contain US-ASCII characters only. While some methods of adding files to filebases may support adding filenames
 +that include CP437 characters, that should be avoided/discouraged. The allowed filename characters for files uploaded by users
 +is configurable by the sysop in SCFG->File Options.
 + 
 +==== Case-insensitivity ====
 +The original case (upper/lower) of alphabetic characters in filenames is stored in the filebases
 +(index and header files), however, storage of the same (duplicate) filename, differing
 +only in case, is intentionally not supported.
  
 ===== Large Files ===== ===== Large Files =====
Line 97: Line 111:
 of 10 lines or 512 total characters. There is no technical limit to the length of 10 lines or 512 total characters. There is no technical limit to the length
 of extended file descriptions, though a limit of 4000 characters imported from of extended file descriptions, though a limit of 4000 characters imported from
-description files embedded in archives (e.g. FILE_ID.DIZ) is being imposed.+description files embedded in archives (e.g. ''FILE_ID.ANS'', ''FILE_ID.DIZ'', or ''DESC.SDI'') is being imposed.
  
 ===== Batches ===== ===== Batches =====
Line 103: Line 117:
 File upload and download batch queues used to be maintained in memory (though File upload and download batch queues used to be maintained in memory (though
 they were written to disk files to be retained between user logons), they are they were written to disk files to be retained between user logons), they are
-now entirely maintained in disk files (data/user/*.upload and *.dnload in .ini+now entirely maintained in disk files (''data/user/*.upload'' and ''*.dnload'' in ''.ini''
 file format). This means that custom batch management can now be performed file format). This means that custom batch management can now be performed
 easily by modules or non-Terminal Server scripts. easily by modules or non-Terminal Server scripts.
Line 137: Line 151:
 ===== Tags ===== ===== Tags =====
  
-Individual files can now be tagged for easy searching/grouping. This feature+Individual files can now be tagged (with tag-words, ala hashtags) for easy searching/grouping. This feature
 will be utilized/enhanced more in the future. will be utilized/enhanced more in the future.
  
Line 150: Line 164:
  
 The new FileBase JS class is now used to import files directly from FidoNet The new FileBase JS class is now used to import files directly from FidoNet
--style .TIC files (via tickit.js) so no dependency or invocation of any+-style ''.TIC'' files (via tickit.js) so no dependency or invocation of any
 external utilities (e.g. addfiles) is required. external utilities (e.g. addfiles) is required.
  
Line 158: Line 172:
 replaced with similarly named and purposed JavaScript utility scripts to be replaced with similarly named and purposed JavaScript utility scripts to be
 invoked with JSexec or via timed event: invoked with JSexec or via timed event:
-addfiles.js for importing lists of files into filebases +  * ''addfiles.js'' for importing lists of files into filebases 
-postfile.js for importing a single file into a filebase +  * ''postfile.js'' for importing a single file into a filebase 
-filelist.js for generating file listings from filebases +  * ''filelist.js'' for generating file listings from filebases 
-delfiles.js for removing files from filebases +  * ''delfiles.js'' for removing files from filebases 
-dupefind.js for detecting/listing/removing duplicate files in the filebases+  * ''dupefind.js'' for detecting/listing/removing duplicate files in the filebases
  
 ===== Performance ===== ===== Performance =====
Line 175: Line 189:
 Due to the removal of support for rendering FTP-downloaded content (e.g. Due to the removal of support for rendering FTP-downloaded content (e.g.
 HTML files) in modern web browsers, the FTP Server no longer supports dynamic HTML files) in modern web browsers, the FTP Server no longer supports dynamic
-HTML index file generation (e.g. 00index.html). Instead, we will focus on+HTML index file generation (e.g. ''00index.html''). Instead, we will focus on
 better support for filebase browsing and file transfers via HTTP and HTTPS in better support for filebase browsing and file transfers via HTTP and HTTPS in
 addition to the traditional FTP and FTPS uses. The dynamic generation of addition to the traditional FTP and FTPS uses. The dynamic generation of
-the ASCII file listings via FTP (e.g. 00index) is still supported by the FTP+the ASCII file listings via FTP (e.g. ''00index'') is still supported by the FTP
 server, though now much faster than before. server, though now much faster than before.
  
 ===== libarchive ===== ===== libarchive =====
  
-The libarchive library (http://libarchive.org/has now been integrated into+The [[http://libarchive.org/|libarchive]] library has now been integrated into
 Synchronet (and exposed via the new "Archive" JavaScript class) and integrated Synchronet (and exposed via the new "Archive" JavaScript class) and integrated
 into SBBSecho so that the creation, listing/viewing, and extraction of into SBBSecho so that the creation, listing/viewing, and extraction of
Line 190: Line 204:
  
 Formats fully supported: Formats fully supported:
-zip +  * zip (not all legacy compression formats, e.g. "implode", supported) 
-7zip +  7zip 
-gzipped-tar +  gzipped-tar 
-bzipped-tar+  bzipped-tar
  
 Formats supported for viewing and extraction only: Formats supported for viewing and extraction only:
-rar (original and RAR v5 format) +  * rar (original and RAR v5 format) 
-lha/lzh +  lha/lzh 
-iso +  iso 
-xar +  xar 
-cab+  cab
  
 This means that for most BBSes, no "Compressible" or "Extractable" file types This means that for most BBSes, no "Compressible" or "Extractable" file types
Line 207: Line 221:
 command-line need be configured. command-line need be configured.
  
-For listing the contents of archives, the new archive.js utility script may be+For listing the contents of archives, the new ''[[dir:exec]]/archive.js'' utility script may be
 installed as a "Viewable File Type" handler for the commonly supported file installed as a "Viewable File Type" handler for the commonly supported file
-extensions by running 'jsexec archive.js install'. This installs archive.js as+extensions by running 'jsexec archive.js install'. This installs ''archive.js'' as
 a final "fall-through" viewer for "*" files (all file types). a final "fall-through" viewer for "*" files (all file types).
  
 ===== DIZ ===== ===== DIZ =====
  
-Description files embedded in archives (e.g. FILE_ID.DIZ) are now supported+Description files embedded in archives (e.g. ''FILE_ID.DIZ'') are now supported
 more uniformly and seamlessly. Supported ANSI sequences (e.g. attribute/color more uniformly and seamlessly. Supported ANSI sequences (e.g. attribute/color
 changes) are now converted to Ctrl-A equivalents upon import. Metadata changes) are now converted to Ctrl-A equivalents upon import. Metadata
Line 225: Line 239:
 "Area Tag" explicitly set for FidoNet-style file distribution networks. If "Area Tag" explicitly set for FidoNet-style file distribution networks. If
 an Area Tag is not explicitly set, then the directory's short name is used an Area Tag is not explicitly set, then the directory's short name is used
-(with spaces replaced with underscores) automatically. tickit.js now uses+(with spaces replaced with underscores) automatically. ''tickit.js'' now uses
 this new "area_tag" file_area.dir[] JS property for its "AutoAreas" feature. this new "area_tag" file_area.dir[] JS property for its "AutoAreas" feature.
  
Line 250: Line 264:
 modern world. Bye bye Bi-modem. :-( modern world. Bye bye Bi-modem. :-(
  
 +===== User-to-user File Transfers =====
 +
 +While user-to-user file transfers **are** supported in the new file base, the "to" users of existing user-to-user transfers (in the "user" file area, if you have one) will not be migrated by 'upgrade_to_v319' to the new filebase.
 +
 +A quick way to check if this will impact you is to see if you have a non-zero-length ''[[dir:data]]/xfer.ixt'' file. If you do, then you have some pending user-to-user transfers that you may want to deal with.
 ===== See Also ===== ===== See Also =====
   * [[:history:|history index]]   * [[:history:|history index]]