ghost-storage-base

中文文档
3.0.3发布于 2026/11/04MITTypeScriptES Module构建来源已验证

Ghost存储适配器的基类。

中文使用文档
文档目录3 节
  1. 用法
  2. 安装激活
  3. 开发

ghost-storage-base

的基类 鬼 存储适配器。存储适配器 决定上传的图像、媒体和文件的存储位置以及存储方式 服务-本地文件系统,S3,谷歌云存储等。

看到 Ghost适配器文档 了解如何配置和加载适配器。

用法

在适配器旁边安装基类:

npm install ghost-storage-base

扩展 StorageBase 并实现中列出的每个方法 requiredFns: exists, save, serve, delete, read. TypeScript适配器也必须 实现声明的内容 saveRaw(buffer, targetPath) 和 urlToPath(url) 方法。

const {StorageBase} = require('ghost-storage-base');

class MyStorage extends StorageBase {
    // Resolve to true if a file already exists at targetDir/fileName.
    exists(fileName, targetDir) { /* ... */ }
    // Persist `file` and resolve to the public URL/path it's served at.
    save(file, targetDir) { /* ... */ }
    // Return an Express middleware that serves stored files.
    serve() { /* ... */ }
    // Remove a stored file.
    delete(fileName, targetDir) { /* ... */ }
    // Resolve to a Buffer of the file at options.path.
    read(options) { /* ... */ }
}

module.exports = MyStorage;

基类提供了这些帮助器:

  • getTargetDir(baseDir) 返回一个 YYYY/MM 路径,可选在内部 baseDir。
  • getSanitizedFileName(fileName) 将不支持的文件名字符替换为 -。
  • getUniqueFileName(file, targetDir) 和 generateUnique(dir, name, ext, i) 呼叫 this.exists(...) 直到他们找到一个免费的文件名(exists 必须返回 一个 Promise<boolean>).

安装激活

将适配器放置在 content/adapters/storage/MyStorage/index.js 并激活 在你的Ghost配置中。存储有三个独立的功能键- active (图片), media, files -以适配器命名的块为 传递给它的构造函数:

{
    "storage": {
        "active": "MyStorage",
        "MyStorage": {}
    }
}

开发

这是Ghost monorepo中的一个工作空间包。从repo根目录:

pnpm --filter ghost-storage-base build   # compile to build/ with tsc (ESM)
pnpm --filter ghost-storage-base test    # type-check + unit tests

此包仅支持esm,并使用 tsc (module: nodenext). 相对 进口 src/ 必须带有显式扩展名;写真实的 .ts 一个- - - - - - import {x} from './x.ts' 和 tsc 将其重写为 .js 在发出 (rewriteRelativeImportExtensions).

版权与许可

鬼子基金会版权所有2013-2026 麻省理工学院的许可. 鬼和鬼的标志是鬼基金会有限公司的商标。请参阅我们的 商标政策 有关可接受的用法的信息。

版本与发布记录

ghost-storage-base 共发布 18 个版本,首次发布于 2017/04/05;过去 12 个月发布了 9 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
3.0.3latest2026/11/04今天
3.0.22026/10/1321 天前
3.0.12026/10/0728 天前
3.0.02026/07/253 个月前
2.1.52026/06/254 个月前
2.1.22026/06/254 个月前

关于 ghost-storage-base 的常见问题

ghost-storage-base 是什么?

Ghost存储适配器的基类。

如何安装 ghost-storage-base?

在项目目录运行 npm install ghost-storage-base,或使用 pnpm add / yarn add / bun add。

ghost-storage-base 支持 TypeScript 吗?

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

ghost-storage-base 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

ghost-storage-base 可以商用吗?

ghost-storage-base 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

ghost-storage-base 还在维护吗?

最新版本 3.0.3 发布于 2026/11/04(今天);至今共发布 18 个版本,其中过去 12 个月发布了 9 个;首次发布于 2017/04/05。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。