# @antelopejs/interface-file-storage 中文文档

规范地址：https://npmcn.com/package/%40antelopejs/interface-file-storage/

版本：0\.1\.7
npm 元数据更新时间：2026-11-04T15:44:53.020Z
中文译文更新时间：2026-11-06T06:25:55.026Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40antelopejs/interface-file-storage
原文对照：https://npmcn.com/package/%40antelopejs/interface-file-storage/?lang=original
项目主页：https://github.com/AntelopeJS/interface-file-storage/tree/main/docs
源码仓库：https://github.com/AntelopeJS/interface-file-storage

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：109 kB，18 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：@antelopejs/interface-core \>=0\.2\.4 \<1\.0\.0
- 首次发布：2026-03-22T16:34:58.022Z
- 最新版本发布：2026-11-04T15:44:52.672Z
- 近 30 天下载量：15439（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：10（近 12 个月 10 个）

## 中文简介

预签名上传并读取 URL、 中转和元数据的文件存储的羚羊JS 接口

## 安装

```sh
npm install @antelopejs/interface-file-storage
```

也可以使用：`pnpm add @antelopejs/interface-file-storage`、`yarn add @antelopejs/interface-file-storage`、`bun add @antelopejs/interface-file-storage`

## README

# `@antelopejs/interface-file-storage`

[![npm](https://img.shields.io/npm/v/@antelopejs/interface-file-storage?style=for-the-badge&labelColor=000000&color=000000)](https://www.npmjs.com/package/@antelopejs/interface-file-storage) [![License](https://img.shields.io/npm/l/@antelopejs/interface-file-storage?style=for-the-badge&labelColor=000000&color=000000)](https://npmcn.com/package/%40antelopejs/interface-file-storage/LICENSE) [![Discord](https://img.shields.io/badge/Discord-18181B?logo=discord&style=for-the-badge&color=000000)](https://discord.gg/g4pFt6eXqu) [![Docs](https://img.shields.io/badge/Docs-18181B?style=for-the-badge&color=000000)](https://npmcn.com/package/%40antelopejs/interface-file-storage/docs/1.introduction.md)

藏羚羊JS文件存储合同. 客户端直接用预先签名的URL上传并下载文件,而您的模块在URL上签名并管理被存储的对象.

## 它提供的东西

-   `CreateUploadUrl` 直接上传并对照您的限制检查其大小和 MIME 类型.
-   `CreateReadUrl` 返回一个公共文件的永久 URL,一个私人文件的过期 URL.
-   `WriteFile` 存储服务器已经持有的字节,没有预先签名的 URL .
-   `ReadFile` 将文件的字节流到服务器本身,可能无法到达存储器的公共地址.
-   `FileExists`, (中文(简体) ), `GetFileMetadata`, (中文(简体) ), `MoveFile` 财务报告和审定财务报表 `DeleteFile` 管理存储对象.
-   分阶段上传在中转前缀下直到 `PromoteFile` 证实它们,所以废弃的上传可以过期.
-   每个存储操作上的可选存储名选择了多桶中的一个.
-   [关键助手](https://npmcn.com/package/%40antelopejs/interface-file-storage/docs/2.file-operations.md#staging-key-helpers) 在不访问存储的情况下检查或转换中转密钥.

## 执行情况

| 模块 | 页:1 |
| --- | --- |
| [`@antelopejs/file-storage-s3`](https://github.com/AntelopeJS/file-storage-s3) | S3相容对象存储( AWS S3, Cloudflare R2) |
| [`@antelopejs/file-storage-local`](https://github.com/AntelopeJS/file-storage-local) | 本地文件系统,用于开发和单项部署 |

## 安装

将界面添加到处理文件的模块中 :

```bash
pnpm add @antelopejs/interface-file-storage
```

然后在项目中添加一个执行:

```bash
ajs project modules add @antelopejs/file-storage-s3
```

## 快开始

```ts
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` 以读取、移动或删除文件.

## 文档

-   [导言](https://npmcn.com/package/%40antelopejs/interface-file-storage/docs/1.introduction.md)
-   [文件操作](https://npmcn.com/package/%40antelopejs/interface-file-storage/docs/2.file-operations.md)
-   [供应商晋升合同](https://npmcn.com/package/%40antelopejs/interface-file-storage/docs/3.provider-contract.md)

## 兼容性

| 软件包 | 支助 | 测试过 |
| --- | --- | --- |
| `@antelopejs/interface-core` | `>=0.2.4 <1.0.0` | `0.2.4` |

表格列出来自 `package.json`。 。 。 . `@antelopejs/core` 是一种发展依赖,而不是同伴。 检查执行模块的要求.

## 捐款

读取 [捐款额](https://npmcn.com/package/%40antelopejs/interface-file-storage/CONTRIBUTING.md) 在你打开拉动请求之前。 当地检查为:

```bash
pnpm install
pnpm lint
pnpm test
```

## 许可证

[阿帕奇 - 2.0](https://npmcn.com/package/%40antelopejs/interface-file-storage/LICENSE)

## 常见问题

### @antelopejs/interface-file-storage 是什么？

预签名上传并读取 URL、 中转和元数据的文件存储的羚羊JS 接口

### 如何安装 @antelopejs/interface-file-storage？

在项目目录运行 npm install @antelopejs/interface-file-storage，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@antelopejs/interface-core（\>=0\.2\.4 \<1\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @antelopejs/interface-file-storage 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @antelopejs/interface-file-storage 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @antelopejs/interface-file-storage 可以商用吗？

@antelopejs/interface-file-storage 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @antelopejs/interface-file-storage 的下载量有多少？

根据 npm 官方下载统计，@antelopejs/interface-file-storage 在 2026/10/06 – 2026/11/04 这 30 天内被下载 15,439 次，日均约 515 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @antelopejs/interface-file-storage 还在维护吗？

最新版本 0\.1\.7 发布于 2026/11/04（1 天前）；至今共发布 10 个版本，其中过去 12 个月发布了 10 个；首次发布于 2026/03/23。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

