====== File Areas Configuration ======

Transferable files are represented to users in a logical 2-level hierarchy of libraries and directories. A library is a group of directories
that contain files of a similar subject matter.

An example file library/directory configuration:
<code>
Library Name            Directory
---------------------------------
Main                    Text
                        Utilities
                        Business
                        Graphics
                        Games
                        Communications
                        Miscellaneous

Adult                   Text
                        Animation
                        GIF files
                        TGA files

DOS CD-ROM              Utilities
                        Device Drivers
                        Business
                        Games
                        Communications
                        Programming

Windows CD-ROM          Utilities
                        BMP files
                        WAV files
                        Device Drivers
                        Games
                        Desktop Publishing
                        Fonts
</code>

===== Configure =====

File Areas are usually configured (e.g. created and removed) using the [[util:SCFG]]->File Areas menu.

Hit INS (insert key) to create a file library. File libraries are groups of
file directories that have a similar subject matter or other common element.
File libraries are often used to separate Program files and Data files or
files stored on a Hard disk and files stored on CD-ROM. An example
configuration that separates programs from data:
<code>
Library 		Directory
---------------------------------
Programs		Games
Programs		Utilities
Programs		Business
Programs		Communications
Programs		Graphics Programs
Programs		Programming
Data Files		Text (Documentation, Stories, Cheats)
Data Files		Program Source Code (C, ASM, PAS, BAS)
Data Files		Still Pics (GIF, PCX, TIF)
Data Files		Animation (FLI, GL, DL)
Data Files		Sound (MOD, WAV, MID)
Data Files		Other
</code>
Example configuration that separates hard disk directories from CD-ROM
directories:
<code>
Library 		Directory
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Hard Disk		Text
Hard Disk		Games
Hard Disk		Utilities
Hard Disk		Business
Hard Disk		Graphics
Hard Disk		Communications
Hard Disk		Graphics Programs
Hard Disk		Programming
Hard Disk		Graphics, Animation, and Sound
GIF CD-ROM		G Rated
GIF CD-ROM		G Rated 640x480
GIF CD-ROM		G Rated 800x600+
GIF CD-ROM		R Rated
GIF CD-ROM		R Rated 640x480
GIF CD-ROM		R Rated 800x600+
GIF CD-ROM		X Rated
GIF CD-ROM		X Rated 640x480
GIF CD-ROM		X Rated 800x600+
PD/ShareWare CD-ROM	Games - Mono, CGA, EGA
PD/ShareWare CD-ROM	Games - VGA
PD/ShareWare CD-ROM	Utilities
PD/ShareWare CD-ROM	Communications
PD/ShareWare CD-ROM	Graphics and Desktop Publishing
PD/ShareWare CD-ROM	BBS Software and Utilities
PD/ShareWare CD-ROM	Programming
PD/ShareWare CD-ROM	Windows Programs, Fonts, Icons, etc.
</code>
You must have at least one file library and one file directory for anyone to be
able to use the file transfer section. Following is a list of options available
when creating or modifying a file library.



===== Library Configuration =====

When a file library is selected from the SCFG → File Areas menu, the following options are available:

  ╔════════════════════════════════════════════════════════════════════════╗
  ║                              Main Library                              ║
  ╠════════════════════════════════════════════════════════════════════════╣
  ║ │Long Name                  Main                                       ║
  ║ │Short Name                 Main                                       ║
  ║ │Internal Code Prefix       MAIN-                                      ║
  ║ │Parent Directory                                                      ║
  ║ │Access Requirements                                                   ║
  ║ │Upload Requirements                                                   ║
  ║ │Download Requirements                                                 ║
  ║ │Operator Requirements      LEVEL 90                                   ║
  ║ │Exemption Requirements                                                ║
  ║ │Auto-Add Sub-directories                                              ║
  ║ │Sort Library By Directory  Index Position                             ║
  ║ │Virtual Sub-directories    Lowercased Internal Code                   ║
  ║ │Export Areas...                                                       ║
  ║ │Import Areas...                                                       ║
  ║ │Directory Defaults...                                                 ║
  ║ │File Directories...                                                   ║
  ╚════════════════════════════════════════════════════════════════════════╝

^ Option Name             ^ Description ^
| Long Name               | Description displayed when a user lists libraries (e.g. with the ''/*'' command). |
| Short Name              | Short description shown in main-menu prompts and library listings. |
| Internal Code Prefix    | Optional, recommended prefix used to construct unique internal codes for directories in this library. Up to 8 valid filename characters. Should be unique among libraries. Changing it implicitly renames every directory's internal code in this library. |
| Parent Directory        | Optional path under which all directories in this library default their //Actual File Path// (e.g. a CD-ROM mount point or a separate disk). |
| Access Requirements     | [[access:requirements|ARS]] users must match to see/access the library. |
| Upload Requirements     | ARS to upload to any directory in this library (combined with each directory's own //Upload Requirements//). |
| Download Requirements   | ARS to download from any directory in this library (combined with each directory's own //Download Requirements//). |
| Operator Requirements   | ARS to be a //library op// (file-area sysop for this library). |
| Exemption Requirements  | ARS that exempts the user from the library's access controls. |
| Auto-Add Sub-directories | Automatically create file directories from sub-directories of the //Parent Directory// path when SCFG starts. Useful for library trees backed by a CD-ROM or external file collection. |
| Sort Library By Directory | How directories within the library are sorted when listed: //Index Position// (sysop order), //Long Name//, //Short Name//, or //Internal Code Suffix//. |
| Virtual Sub-directories | Naming convention for the per-directory virtual paths used by SFTP and HTTP file browsing: //Lowercased Internal Code// (default), //Internal Code//, //Long Name//, or //Short Name//. |
| Export Areas...         | Sub-menu — write all directory definitions in this library out to a text file in one of several formats (Synchronet ''*dirs.ini'', Raw ''DIRS.RAW'', CD-ROM ''DIRS.TXT''/''DIRS.WIN''/''00_INDEX.TXT'', or FidoNet ''FILEGATE.ZXX''). The picker also asks //Append// vs //Overwrite// when the file already exists. |
| Import Areas...         | Sub-menu — read directory definitions from a text file (same supported formats as //Export Areas//) and add or update directories in this library. |
| Directory Defaults...   | Sub-menu — edit the **default** values that are applied to **newly added** directories in this library. New directories inherit these defaults; changing the defaults does **not** alter existing directories (use //Clone Options// at the directory level for that). |
| File Directories...     | Sub-menu — list and edit the file directories that belong to this library. |

===== Directory Configuration =====

When a file directory is selected from a library's //File Directories...// list, the per-directory main menu is shown:

==== Main Options ====

  ╔══════════════════════════════════════════════════════════╗
  ║                          Games Dir                       ║
  ╠══════════════════════════════════════════════════════════╣
  ║ │Long Name                  Games                        ║
  ║ │Short Name                 Games                        ║
  ║ │Internal Code              MAIN-GAMES                   ║
  ║ │FidoNet Area Tag           [MAIN.GAMES]                 ║
  ║ │Virtual File Path          [/main/games]                ║
  ║ │Access Requirements                                     ║
  ║ │Upload Requirements                                     ║
  ║ │Download Requirements                                   ║
  ║ │Operator Requirements                                   ║
  ║ │Exemption Requirements                                  ║
  ║ │Actual File Path           /sbbs/fileareas/main/games/  ║
  ║ │Maximum Number of Files    Unlimited                    ║
  ║ │Purge by Age               Disabled                     ║
  ║ │Credit on Upload           100%                         ║
  ║ │Credit on Download         90%                          ║
  ║ │Toggle Options...                                       ║
  ║ │Advanced Options...                                     ║
  ╚══════════════════════════════════════════════════════════╝

^ Option Name             ^ Description ^
| Long Name               | Description shown when a user lists directories. |
| Short Name              | Short description shown in prompts. |
| Internal Code           | Library prefix + sub-code suffix; uniquely identifies the directory across the system. |
| FidoNet Area Tag        | Echo/Area Tag for [[network:fidonet|FidoNet-style]] file distribution networks (e.g. via [[module:tickit|tickit]]). Auto-generated from library + directory short names if blank. |
| Virtual File Path       | Path under which this directory's files are exposed via SFTP and HTTP. Auto-generated from library and directory if not explicitly set. |
| Access Requirements     | ARS to see this directory at all. |
| Upload Requirements     | ARS to upload files to this directory. |
| Download Requirements   | ARS to download files from this directory. |
| Operator Requirements   | ARS to be a //directory op// (manage files here). |
| Exemption Requirements  | ARS that exempts the user from this directory's access controls. |
| Actual File Path        | On-disk directory holding the actual file contents. Defaults under the library's //Parent Directory// if set, otherwise under ''[[dir:data]]/dirs/<code>/''. |
| Maximum Number of Files | Soft maximum number of file records. Older files above this count are pruned by ''[[module:delfiles]]''. ''0'' = unlimited. |
| Purge by Age            | Soft maximum age (days) for files. Older files are pruned by ''delfiles''. |
| Credit on Upload        | Percentage of the file's size in credits awarded to the uploader (overrides the system [[config:file_options|default]] for new directories). |
| Credit on Download      | Percentage of the file's size in credits charged to the downloader. |

==== Toggle Options ====

  ╔══════════════════════════════════════════════════════════╗
  ║                    Directory Toggles                     ║
  ╠══════════════════════════════════════════════════════════╣
  ║ │Check for File Existence            Yes                 ║
  ║ │Force Content Ratings               No                  ║
  ║ │Upload Date in Listings             Yes                 ║
  ║ │Multiple File Numberings            No                  ║
  ║ │Search for Duplicates               Yes                 ║
  ║ │Search for New Files                Yes                 ║
  ║ │Search for Auto-ADDFILES            No                  ║
  ║ │Import FILE_ID.DIZ                  Yes                 ║
  ║ │Free Downloads                      No                  ║
  ║ │Free Download Time                  No                  ║
  ║ │Deduct Upload Time                  No                  ║
  ║ │Credit Uploads                      Yes                 ║
  ║ │Credit Downloads                    Yes                 ║
  ║ │Credit with Minutes                 No                  ║
  ║ │Download Notifications              Yes                 ║
  ║ │Anonymous Uploads                   No                  ║
  ║ │Allow File Tagging                  Yes                 ║
  ║ │Calculate/Store Hash of Files       Yes                 ║
  ║ │Purge by Last Download Date         No                  ║
  ║ │Mark Moved Files as New             Yes                 ║
  ║ │Include Transfers In Stats          Yes                 ║
  ╚══════════════════════════════════════════════════════════╝

^ Option Name              ^ Description ^
| Check for File Existence | When listing/searching, verify the actual file is present on disk; missing files are flagged. |
| Force Content Ratings    | Require all uploaded files in this directory to be tagged with a content rating. |
| Upload Date in Listings  | Show each file's upload date in standard listings. |
| Multiple File Numberings | Allow multiple file records with the same number/identifier (legacy). |
| Search for Duplicates    | Reject upload if a hash- or filename-duplicate already exists in this directory. |
| Search for New Files     | Include this directory in the //new files// scans done by users at logon. |
| Search for Auto-ADDFILES | Include this directory when the [[module:addfiles|addfiles]] script is run with the ''-auto'' option. |
| Import FILE_ID.DIZ       | Extract and import the embedded ''FILE_ID.DIZ'' / ''FILE_ID.ANS'' / ''DESC.SDI'' description from uploaded archives. |
| Free Downloads           | All downloads from this directory cost zero credits. |
| Free Download Time       | All downloads do not subtract from the user's online time. |
| Deduct Upload Time       | Time spent uploading is subtracted from the user's online time. |
| Credit Uploads           | Award credits to the uploader for the initial upload. |
| Credit Downloads         | Award credits to the uploader when their files are downloaded by others. |
| Credit with Minutes      | Use minutes (time-bank credit) instead of bytes/credits when crediting the uploader. |
| Download Notifications   | Send the uploader an in-BBS message when their file is downloaded. |
| Anonymous Uploads        | ''Yes'' = users with the ''A'' [[access:exemptions|exemption]] may upload anonymously; ''Only'' = all uploads are forced anonymous; ''No'' = identification always required. |
| Allow File Tagging       | Permit users to add hash-tag-style tags to files in this directory. |
| Calculate/Store Hash of Files | Compute and store CRC-16, CRC-32, MD5, and SHA-1 of each uploaded file (used for [[ref:smb#hash_flags|duplicate detection]] and integrity reporting). |
| Purge by Last Download Date | Use last-download date (rather than upload date) when applying //Purge by Age//. |
| Mark Moved Files as New  | Files //moved from// this directory have their upload date reset to the current date so they re-appear in users' new-file scans. |
| Include Transfers In Stats | Count uploads/downloads in this directory toward the system's daily and cumulative statistics. |

==== Advanced Options ====

  ╔══════════════════════════════════════════════════════════╗
  ║                  Directory Advanced                      ║
  ╠══════════════════════════════════════════════════════════╣
  ║ │Extensions Allowed                                      ║
  ║ │Data Directory                                          ║
  ║ │Upload Semaphore File                                   ║
  ║ │Sort Value and Direction   Name Ascending (insens.)     ║
  ║ │Directory Index            Now N / Was N                ║
  ╚══════════════════════════════════════════════════════════╝

^ Option Name        ^ Description ^
| Extensions Allowed | Comma-separated list of allowed file extensions (case-insensitive, no leading dot). Blank = all extensions allowed. |
| Data Directory     | Override on-disk path where this directory's SMB file-base files live (defaults to ''[[dir:data]]/dirs/''). |
| Upload Semaphore File | Path to a file Synchronet creates after a successful upload. Used to trigger external processes (e.g. an echomail file-export, hatch script, etc.). |
| Sort Value and Direction | How files within this directory are sorted by default when listed: by Name (case-sensitive or insensitive, ascending or descending) or by Date (ascending or descending). |
| Directory Index    | Current and previous numeric index of this directory within its library. Informational. |

==== Adding Files ====
Files are added to file areas using any of a number of possible methods:
  - Uploading files (e.g. by a user) via a supported [[config:file_transfers|file transfer protocol or server]]
  - Adding files to the file base using sysop commands while logged into the [[server:terminal]] server
  - Adding files via the [[module:addfiles]] / [[module:postfile]] / [[module:fileman]] utility scripts (typically as a [[config:external_programs#timed_events|timed event]])
  - For [[network:fidonet|FidoNet]] file echoes, files arriving via [[module:tickit|tickit]] are imported automatically

===== See Also =====
  * [[:config:|config index]]
  * [[File Options]]
  * [[:faq:files|Frequently Asked Questions]]

{{tag>files}}
