table of contents
| AIOCOAP-FILESERVER(1) | aiocoap | AIOCOAP-FILESERVER(1) |
NAME¶
aiocoap-fileserver - File server for CoAP
A simple file server that serves the contents of a given directory in a read-only fashion via CoAP. It provides directory listings, and guesses the media type of files it serves.
It follows the conventions set out for the kitchen-sink fileserver, optionally with write support, with some caveats:
- There are some time-of-check / time-of-use race conditions around the
handling of ETags, which could probably only be resolved if heavy file
system locking were used. Some of these races are a consequence of this
server implementing atomic writes through renames.
As long as no other processes access the working area, and aiocoap is run single threaded, the races should not be visible to CoAP users.
- ETags are constructed based on information in the file's (or directory's)
stat output -- this avoids reaing the whole file on overwrites etc.
This means that forcing the MTime to stay constant across a change would confuse clients.
- While GET requests on files are served block by block (reading only what is being requested), PUT operations are spooled in memory rather than on the file system.
- Directory creation and deletion is not supported at the moment.
usage: aiocoap-fileserver [-h] [--version] [-v] [--register [RD-URI]]
[--etag-length LENGTH] [--write] [--bind BIND]
[--credentials CREDENTIALS]
[--tls-server-certificate CRT]
[--tls-server-key KEY]
[path]
POSITIONAL ARGUMENTS¶
- path
- Root directory of the server
Default: .
NAMED ARGUMENTS¶
- --version
- show program's version number and exit
- -v, --verbose
- Be more verbose (repeat to debug)
Default: 0
- --register
- Register with a Resource directory
Default: False
- --etag-length
- Possible choices: 0, 1, 2, 3, 4, 5, 6, 7
Control length of ETag, 0-8 (0 disables, for servers where files are never modified)
Default: 8
- --write
- Allow writes by any user
Default: False
- --bind
- Host and/or port to bind to (see --help-bind for details)
- --credentials
- JSON file pointing to credentials for the server's identity/ies.
- --tls-server-certificate
- TLS certificate (chain) to present to connecting clients (in PEM format)
- --tls-server-key
- TLS key to load that supports the server certificate
COPYRIGHT¶
Christian Amsüss and the aiocoap contributors
| April 3, 2025 | 0.4 |