4 个版本
0.1.3 | 2024 年 6 月 20 日 |
---|---|
0.1.2 | 2024 年 6 月 12 日 |
0.1.1 | 2024 年 6 月 12 日 |
0.1.0 | 2024 年 6 月 11 日 |
#367 在 HTTP 服务器
每月 159 次下载
45KB
1K SLoC
esetres
一个单次安装的自托管文件存储服务器。
开始使用
安装
cargo install esetres
# check version to verify installation
esetres -V
运行初始化
运行 init 命令并完成设置过程。
esetres init
启动服务器
esetres start
[!TIP] 查看我们的 示例 了解如何托管和结构化您的服务器。
API
[!NOTE] 未来可能会添加客户端
健康检查 GET/health
返回服务器的简单运行状态。
创建存储桶 POST/buckets
(authed)
创建一个新的存储桶。
请求体
{
"name": "bucket_name"
}
清除缓存 POST/cache/invalidate
仅配置为本地访问。这将使令牌缓存失效,并从数据库重新获取。这将在您创建或撤销令牌时发生。
获取文件 GET/buckets/{bucket}/{public | private}/{file_name}
从请求的存储桶获取请求的文件。对 private
的请求必须是经过授权的。
上传文件 PUT/buckets/{bucket}/{public | private}/{file_name}
(authed)
将文件上传到指定的存储桶,并使用指定的文件名。
请求正文:文件内容以字节表示
删除文件 DELETE/buckets/{bucket}/{public | private}/{file_name}
(authed)
根据指定的存储桶和文件名删除文件。
命令行界面(CLI)
[!WARNING] 所有命令必须在与服务器相同的目录中运行。
初始化
设置环境变量、运行迁移以及创建第一个存储桶的逐步过程。
esetres init
Welcome to esetres cli!
|
o Do you want us to generate the token secret? yes
|
✓ Generated token secret.
|
o Select your the ip: 172.31.144.1
|
o Enter the port: 8080
|
o Use https? no
TOKEN_SECRET="[hidden]"
IP="172.31.144.1"
PORT="8080"
HTTPS=0
o .env file Ok? yes
|
✓ Created .env file.
|
o Run sqlite migration? yes
|
✓ Ran sqlite migration.
|
o Create a bucket? yes
|
o Enter the bucket name: default
|
✓ Bucket [default] created.
|
✓ Completed initialization.
启动
启动服务器。
esetres start
Listening at 127.0.0.1:3000...
运行迁移
esetres 使用本地 sqlite 数据库来存储令牌。在 init
函数中,您可以选择自动运行,也可以随时手动运行
esetres migrate
存储桶
您可以通过 API 或在服务器上自行创建文件夹来创建存储桶。然而,命令行界面(CLI)提供了一些额外的功能。
创建
创建新的存储桶和所需的文件夹。
esetres buckets create my_bucket
删除
删除存储桶及其所有内容。
esetres buckets delete my_bucket
列出
列出所有存储桶及其最后修改时间。
esetres buckets list
Name Modified
-----------------------------------------------
default | 2024-06-11 09:36:37.522380 -05:00
test | 2024-06-11 09:44:01.888576100 -05:00
令牌
令牌允许您控制对服务器的访问。它使用带有 Bearer 方案的 jwt,这意味着授权路由需要授权头。
服务器会缓存令牌以实现快速响应,并在您创建或删除令牌时自动更新缓存。
铸造
创建具有指定范围和访问权限的新令牌。
创建
esetres tokens mint MY_TOKEN
New token (MY_TOKEN) created for scope (*).
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...
设置 范围
范围允许您限制令牌可以访问的存储桶。
# default scope is "*"
esetres tokens mint MY_TOKEN --scope default
设置 访问
访问允许您限制令牌创建存储桶、上传文件和读取文件的权限。
# default access is "read"
esetres tokens mint MY_TOKEN --access write
列出
列出所有现有令牌,最近创建的令牌在顶部。
esetres tokens list
Name Scope Access
----------------------------------------------
ANOTHER_REALLY_LONG_TOKEN | test | full
NEW_TEST_TOKEN | default | read
TEST_TOKEN | * | write
吊销
从数据库中删除令牌。
esetres tokens revoke MY_TOKEN
Token revoked.
MIME 类型
MIME 类型来自 mime-db。当您第一次启动服务器时,它将从数据库中获取类型并将其存储在机器上。您始终可以删除 mime-db.json
文件以刷新它。
依赖项
~33–46MB
~798K SLoC