mirror of
https://github.com/drakkan/sftpgo.git
synced 2024-11-22 15:40:23 +00:00
6f4475ff72
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
27 lines
1.6 KiB
Markdown
27 lines
1.6 KiB
Markdown
# HTTP/S storage backend
|
|
|
|
SFTPGo can use custom storage backend implementations compliant with the REST API documented [here](./../openapi/httpfs.yaml).
|
|
|
|
:warning: HTTPFs is a work in progress and makes no API stability promises.
|
|
|
|
The only required parameter is the HTTP/S endpoint that SFTPGo must use to make API calls.
|
|
If you define `http://127.0.0.1:9999/api/v1` as endpoint, SFTPGo will add the API path, for example for the `stat` API it will invoke `http://127.0.0.1:9999/api/v1/stat/{name}`.
|
|
|
|
You can set a `username` and/or a `password` to instruct SFTPGo to use the basic authentication, or you can set an API key to instruct SFTPGo to add it to each API call in the `X-API-KEY` HTTP header.
|
|
|
|
Here is a mapping between HTTP response codes and protocol errors:
|
|
|
|
- `401`, `403` mean permission denied error
|
|
- `404`, means not found error
|
|
- `501`, means not supported error
|
|
- `200`, `201`, mean no error
|
|
- any other response code means a generic error
|
|
|
|
HTTPFs can also connect to UNIX domain sockets. To use UNIX domain sockets you need to set an endpoint with the following conventions:
|
|
|
|
- the URL schema can be `http` or `https` as usual.
|
|
- The URL host must be `unix`.
|
|
- The socket path is mandatory and is set using the `socket_path` query parameter. The path must be query escaped.
|
|
- The optional API prefix can be set using the `api_prefix` query parameter. The prefix must be query escaped.
|
|
|
|
Here is an example endpoint for UNIX domain socket connections: `http://unix?socket_path=%2Ftmp%2Fsftpgofs.sock&api_prefix=%2Fapi%2Fv1`. In this case we are connecting using the `HTTP` protocol to the socket `/tmp/sftpgofs.sock` and we use the `/api/v1` prefix for API URLs.
|