MCPcopy
hub / github.com/labring/FastGPT / IStorage

Interface IStorage

sdk/storage/src/interface.ts:254–389  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

252 * - 所有方法都应当是幂等或尽可能接近幂等(例如删除不存在的对象不应抛出致命错误),以便业务层重试。
253 */
254export interface IStorage {
255 bucketName: string;
256
257 /**
258 * 确保存储桶存在;若不存在则**可能**尝试创建(取决于 vendor 与账号权限)。
259 *
260 * 返回值说明:
261 * - `exists`: 调用前 bucket 是否存在
262 * - `created`: 本次调用是否创建了 bucket
263 *
264 * 建议:
265 * - 对于 OSS/COS 等厂商,很多团队更倾向于在控制台/基础设施层面创建 bucket(权限/策略/生命周期等更可控),
266 * 应用侧仅做存在性校验即可(bucket 不存在时会抛出底层 SDK 错误)。
267 */
268 ensureBucket(): Promise<EnsureBucketResult>;
269
270 /**
271 * 判断对象是否存在。
272 *
273 * 返回值说明:
274 * - `exists`: 对象是否存在
275 */
276 checkObjectExists(params: ExistsObjectParams): Promise<ExistsObjectResult>;
277
278 /**
279 * 上传对象到 bucket。
280 *
281 * 典型用法:
282 * - 上传文件内容(Buffer/Readable)
283 * - 上传文本(string)
284 *
285 * 注意:
286 * - `contentType`/`contentDisposition`/`metadata` 会映射为不同厂商的 HTTP 头或元数据字段,adapter 负责兼容。
287 */
288 uploadObject(params: UploadObjectParams): Promise<UploadObjectResult>;
289
290 /**
291 * 下载对象(以 Node.js `Readable` 流形式返回)。
292 *
293 * 说明:
294 * - 适合大文件流式读取,避免一次性加载到内存。
295 * - 调用方负责消费/关闭流(正常读取结束会自动关闭)。
296 */
297 downloadObject(params: DownloadObjectParams): Promise<DownloadObjectResult>;
298
299 /**
300 * 删除单个对象(按 key)。
301 *
302 * 建议:
303 * - 作为幂等操作处理:若对象不存在,最好仍返回成功(由 adapter 决定具体行为)。
304 */
305 deleteObject(params: DeleteObjectParams): Promise<DeleteObjectResult>;
306
307 /**
308 * 根据多个 key 批量删除对象。
309 *
310 * 注意:
311 * - 各厂商对单次批量删除的最大数量限制不同,adapter 可能需要分批处理。

Callers 59

constructorMethod · 0.65
constructorMethod · 0.65
ensurePublicBucketFunction · 0.65
ensureBucketMethod · 0.65
checkSkillPackageExistsFunction · 0.65
checkBucketHealthMethod · 0.65
isObjectExistsMethod · 0.65
uploadImage2S3BucketFunction · 0.65
uploadMethod · 0.65
addRawTextBufferMethod · 0.65
checkBucketHealthMethod · 0.65

Implementers 4

OssStorageAdaptersdk/storage/src/adapters/oss.adapter.t
AwsS3StorageAdaptersdk/storage/src/adapters/aws-s3.adapte
CosStorageAdaptersdk/storage/src/adapters/cos.adapter.t
MinioStorageAdaptersdk/storage/src/adapters/minio.adapter

Calls

no outgoing calls

Tested by

no test coverage detected