@antelopejs/interface-file-storage
藏羚羊JS文件存储合同. 客户端直接用预先签名的URL上传并下载文件,而您的模块在URL上签名并管理被存储的对象.
它提供的东西
CreateUploadUrl直接上传并对照您的限制检查其大小和 MIME 类型.CreateReadUrl返回一个公共文件的永久 URL,一个私人文件的过期 URL.WriteFile存储服务器已经持有的字节,没有预先签名的 URL .ReadFile将文件的字节流到服务器本身,可能无法到达存储器的公共地址.FileExists, (中文(简体) ),GetFileMetadata, (中文(简体) ),MoveFile财务报告和审定财务报表DeleteFile管理存储对象.- 分阶段上传在中转前缀下直到
PromoteFile证实它们,所以废弃的上传可以过期. - 每个存储操作上的可选存储名选择了多桶中的一个.
- 关键助手 在不访问存储的情况下检查或转换中转密钥.
执行情况
| 模块 | 页:1 |
|---|---|
@antelopejs/file-storage-s3 | S3相容对象存储( AWS S3, Cloudflare R2) |
@antelopejs/file-storage-local | 本地文件系统,用于开发和单项部署 |
安装
将界面添加到处理文件的模块中 :
pnpm add @antelopejs/interface-file-storage
然后在项目中添加一个执行:
ajs project modules add @antelopejs/file-storage-s3
快开始
import {
CreateReadUrl,
CreateUploadUrl,
} from "@antelopejs/interface-file-storage";
const MAX_AVATAR_BYTES = 2 * 1024 * 1024;
export async function prepareAvatarUpload(size: number) {
const { uploadUrl, headers, resourceKey } = await CreateUploadUrl(
{ filename: "avatar.png", size, mimetype: "image/png", path: "avatars" },
{ maxSize: MAX_AVATAR_BYTES, allowedMimetypes: ["image/png"] },
);
return { uploadUrl, headers, resourceKey };
}
export async function avatarUrl(resourceKey: string) {
const { url } = await CreateReadUrl(resourceKey, 3600);
return url;
}
客户端发送文件 PUT 改为 uploadUrl,包括: headers保留 resourceKey 以读取、移动或删除文件.
文档
兼容性
| 软件包 | 支助 | 测试过 |
|---|---|---|
@antelopejs/interface-core | >=0.2.4 <1.0.0 | 0.2.4 |
表格列出来自 package.json。 。 。 . @antelopejs/core 是一种发展依赖,而不是同伴。 检查执行模块的要求.
捐款
读取 捐款额 在你打开拉动请求之前。 当地检查为:
pnpm install
pnpm lint
pnpm test