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 麻省理工学院的许可. 鬼和鬼的标志是鬼基金会有限公司的商标。请参阅我们的 商标政策 有关可接受的用法的信息。