Skip to main content

资源库


获取资源库默认分类文件数量

  • URL: [get]/common/library/count
  • 参数:
    • libraryId:string 资源库 ID
  • 返回值:
    • all: number 文件总数量
    • recycle:number 回收站数量
    • unTag:number 未标签的数量
    • unClassified:number 未分类数量

文件夹相关

获取文件夹列表

  • URL: [get]/common/library/folderList
  • 参数:
    • libraryId:string 资源库 ID
  • 返回值: IFolder[] 文件夹列表

IFolder 声明:

type IFolder = {
/**文件夹id */
id: string;
/**文件夹名称 */
name: string;
/**子文件夹 */
children: Folder[];
/**创建时间 */
time: number;
/**修改时间 */
mTime: number;
/**图标 */
icon: string;
/**颜色 */
color: number;
/**更多信息 */
note: string;
};

创建文件夹

  • URL: [post]/common/library/folderList
  • 参数:
    • libraryId:string 资源库 ID
    • data:
      • name:string 文件夹名称
  • 返回值:IFolder 创建的文件夹信息,失败返回非 200 状态码的错误

参数声明:

type Params = {
libraryId: string;
data: {
name: string;
};
};

创建文件夹

  • URL: [post]/common/library/folderList/subFolder
  • 参数:
    • libraryId:string 资源库 ID
    • data:
      • parentId:string 父文件夹 ID
      • name:string 文件夹名称
  • 返回值:IFolder(详细声明见上方),创建的子文件夹信息,失败返回非 200 状态码的错误

参数声明

type Params = {
libraryId: string;
data: {
parentId: string;
name: string;
};
};

重命名文件夹

  • URL: [put]/common/library/folderList/rename
  • 参数:
    • libraryId:string 资源库 ID
    • data:
      • id:string 文件夹 ID
      • name:string 新名称
  • 返回值: 无,失败返回非 200 状态码的错误

参数声明

type Params = {
libraryId: string;
data: {
id: string;
name: string;
};
};

移动文件夹

  • URL: [put]/common/library/folderList/move
  • 参数:
    • libraryId:string 资源库 ID
    • data:
      • downIndex:string 需要移动的文件夹 ID 索引
      • upIndex:string 移动到目标文件夹的 ID 索引
      • position:top | bottom | center 位置
  • 返回值: 无,失败返回非 200 状态码的错误

参数声明

type Params = {
libraryId: string;
data: {
downIndex: string;
upIndex: string;
position: "top" | "bottom" | "center";
};
};

删除文件夹

  • URL: [delete]/common/library/folderList
  • 参数:
    • libraryId:string 资源库 ID
    • data:
      • id:string 文件夹 ID
  • 返回值: 无,失败返回非 200 状态码的错误

参数声明

type Params = {
libraryId: string;
data: {
id: string;
};
};

智能文件夹相关

获取智能文件夹列表

  • URL: [get]/common/library/smartFolderList
  • 参数:
    • libraryId:string 资源库 ID
  • 返回值: IFolder[], 智能文件夹列表,失败返回非 200 状态码的错误

IFolder 声明见上方

创建智能文件夹

  • URL: [post]/common/library/smartFolderList
  • 参数:
    • libraryId:string 资源库 ID
    • data:
      • name:string 文件夹名称
  • 返回值: 创建的智能文件夹信息,失败返回非 200 状态码的错误

参数声明

type Params = {
libraryId: string;
data: {
name: string;
};
};

重命名智能文件夹

  • URL: [put]/common/library/smartFolderList/rename
  • 参数:
    • libraryId:string 资源库 ID
    • data:
      • id:string 文件夹 ID
      • name:string 新名称
  • 返回值: 无,失败返回非 200 状态码的错误

参数声明

type Params = {
libraryId: string;
data: {
id: string;
name: string;
};
};

删除智能文件夹

  • URL: [delete]/common/library/smartFolderList
  • 参数:
    • libraryId:string 资源库 ID
    • data:
      • id:string 文件夹 ID
  • 返回值: 无,失败返回非 200 状态码的错误

参数声明

type Params = {
libraryId: string;
data: {
id: string;
};
};

获取个人收藏

  • URL: [get]/common/library/personalFavorite
  • 参数:
    • libraryId:string 资源库 ID
  • 返回值:IFolder[] 个人收藏的文件夹列表,失败返回非 200 状态码的错误

参数声明

type Params = {
libraryId: string;
};

添加个人收藏

  • URL: [post]/common/library/personalFavorite
  • 参数:
    • libraryId:string 资源库 ID
    • data:
      • id:string 文件夹 ID
  • 返回值: 无,失败返回非 200 状态码的错误

参数声明

type Params = {
libraryId: string;
data: {
id: string;
};
};

删除个人收藏

  • URL: [delete]/common/library/personalFavorite
  • 参数:
    • libraryId:string 资源库 ID
    • data:
      • ids:string[] 文件夹 ID 数组
  • 返回值: 无,失败返回非 200 状态码的错误

参数声明

type Params = {
libraryId: string;
data: {
ids: string[];
};
};

获取文件夹包含的文件数量

  • URL: [get]/common/library/files/folderFileCountMap
  • 参数:
    • libraryId:string 资源库 ID
  • 返回值: 文件夹 ID 与包含的文件数量的映射对象

返回值声明

type IFolderFileCountMap = {
[folderId: string]: number;
};

文件相关

获取文件列表

  • URL: [get]/common/library/files
  • 参数:
    • libraryId:string 资源库 ID
    • folderIds:string[] 文件夹 ID 数组
  • 返回值:IMetadata[] 文件元数据列表

IMetadata 声明:

type IMetadata = {
/**元数据id,文件的Hash值 */
id: string;
/**文件名 */
name: string;
/**文件扩展名 */
ext: string;
/**文件宽度 */
width: number;
/**文件高度 */
height: number;
/**文件大小 */
size: number;
/**文件评分 */
score: number;
/**文件创建时间 */
time: number;
/**文件修改时间 */
revisionTime: number;
/**文件标签 */
tags: string[];
/**文件夹的id映射,支持多个文件夹*/
folders: string[];
/**文件备注 */
note: string;
/**文件的url */
url: string;
/**文件调色板 */
palettes: (Palette | IPalette)[];
/**是否在回收站 */
delete: boolean;
/**文件的评论 */
comments: any;
/**音频的属性信息 */
audio?: IMetadataAudio;
/**扩展的字体信息 */
fontMeta?: IFontInfo;
/**自定义预览图 */
customPreview?: boolean;
video?: IMetadataVideo;
author?: IMetadataAuthor;
/**提示词结构 */
prompt?: IMetadataPrompt;
media2Text?: IMedia2Text;
};

系统默认分类的 ID:

export const KEY_UNCLASSIFIED = "key_unclassified"; //未分类
export const KEY_ALL = "key_all"; //全部
export const KEY_RECYCLE = "key_recycle"; //回收站
export const KEY_UNLABELED = "key_unlabeled"; //未标签
export const KEY_LABEL_MANAGEMENT = "key_labelManagement"; //未标签

如果需要获取未分类的文件列表,则可以传入folderIds[KEY_UNCLASSIFIED],如果需要获取全部文件列表,则可以传入folderIds[KEY_ALL]

文件预览图路径和源文件路径说明

该接口返回的数据中并没有直接的预览图路径和源文件路径,但是可以通过以下方式进行拼接:

//伪代码
const libraryItem; //获取到的资源库信息
const metadata; //获取到的文件元数据
const rootDir = libraryItem.resourcesPath; //文件项目所在的根目录

//预览图路径的拼接
const previewPath = `${rootDir}/${metadata.id}/__preview.webp`; //注意/符号的跨平台处理

//源文件路径的拼接
const orighinalPath = `${rootDir}/${metadata.id}/${metadata.name}.${metadata.ext}`; //注意/符号的跨平台处理

导入文件

  • URL: [post]/common/library/files
  • 参数:
    • libraryId:string 资源库 ID
    • parentId:string 父文件夹 ID(可选)
    • path:string 文件路径
    • metadataOptions:IMetadata 元数据的选填数据项
  • 返回值: 无,添加导入任务失败返回非 200 状态码的错误,添加成功不等于导入成功噢

导入网络地址文件

  • URL: [post]/common/library/files/urls
  • 参数: 见下方 ts 声明
  • 返回值: 根文件夹 ID
type Params = {
/**要保存的资源库ID */
libraryId: string;
/**
* 保存到文件夹到类型
*/
type: "all" | "id" | "currentFolder";
/**保存到父文件夹到id(支持多个) */
ids: string[];
/**采集数据组,支持批量多个 */
datas: ICollectData[];
/**
* 根据名字创建第一层级的文件夹,并且将文件导入到该文件夹中
* 优先级高于ids和type的组合
*/
rootFolderName?: string;
hostSource?: "browser" | "electronBrowser";
};

interface ICollectData {
/*** 图片格式*/
ext?: string;
/**导入的用户名字 */
name?: string;
/**要导入的图片url*/
imgSrc: string;
/**采集的所在的URL */
url?: string;
/**图片宽度 */
width?: number;
/**图片高度 */
height?: number;
/*** 原图*/
originalImgSrc?: string;
/**原图大小*/
originalImgSize?: {
width: number;
height: number;
};
/**备注信息 */
note?: string;
/**当个保存到对应文件夹id */
ids?: string[];
base64?: string;
prompt?: IMetadataPrompt;
}

type IMetadataPrompt = {
/**英文词 */
en: string;
/**中文词 */
cn?: string; //
type?: number; //提示词类型
preview?: string; //预览图
explain?: string; //说明
/**仅支持mj */
mj?: boolean;
/**仅支持sd */
sd?: boolean;
/**反向提示词,sd中使用 */
negativeEn?: string;
/**扩展信息 */
extendedInfo?: string;
};

批量导入文件

  • URL: [post]/common/library/files/batch
  • 参数:
    • libraryId: 资源库 ID
    • parentId: 父文件夹 ID(可选)
    • paths: 文件路径数组
    • metadataOptionsMap: 路径与元数据选项的映射
  • 返回值: 无,添加导入任务失败返回非 200 状态码的错误,添加成功不等于导入成功噢

参数声明

type Params = {
libraryId: string;
parentId?: string;
paths: string[];
metadataOptionsMap: {
[path: string]: IMetadata;
};
};

删除文件

  • URL: [delete]/common/library/files
  • 参数:
    • libraryId: 资源库 ID
    • metaId: 元数据 ID
  • 返回值: 无,删除失败返回非 200 状态码的错误

参数声明

type Params = {
libraryId: string;
metaId: string;
};

使用默认程序打开文件

  • URL: [post]/common/library/files/open
  • 参数:
    • libraryId:string 资源库 ID
    • metaId:string 元数据 ID
    • appPath:string 应用路径(可选),如果 action 为 openByApp 时必填
    • action:openDir | openByDefaultApp | openByApp 执行动作
  • 返回值: 无

参数声明

type Params = {
libraryId: string;
metaId: string;
appPath?: string;
action: "openDir" | "openByDefaultApp" | "openByApp";
};

获取可用的第三方打开软件列表

  • URL: [get]/common/library/files/open
  • 参数:
    • libraryId:string 资源库 ID
    • metaId:string[] 元数据 ID
  • 返回值:IOpenApp[] 第三方软件列表

返回值声明

type IOpenApp = {
/**软件名称 */
name: string;
/**软件图标路径,可能为空 */
iconPath: string;
/**软件路径 */
path: string;
};

通过零泉查看文件

  • URL: [get]/common/library/files/viewer
  • 参数:
    • libraryId:string 资源库 ID
    • metaIds:string[] 元数据 ID
  • 返回值: 无

参数说明

type Params = {
libraryId: string;
metaIds: string[];
};

复制文件

  • URL: [post]/common/library/files/copy
  • 参数:
    • libraryId:string 资源库 ID
    • metaIds: string[] 元数据 ID 数组
    • action:file | path | base64 可以执行的操作
  • 返回值: 无

参数声明

type Params = {
libraryId: string;
/**元数据 ID 数组,支持多个 */
metaIds: string[];
/**
* file:复制文件
* path:复制文件路径
* base64:复制文件base64字符串
*/
action: "file" | "path" | "base64";
};

标签相关

获取标签列表

  • URL: [get]/common/library/tags
  • 参数:
    • libraryId:string 资源库 ID
    • groupIds:string[] 标签组 ID
  • 返回值: string[] 标签列表

参数说明

type Params = {
libraryId: string;
groupIds: string[];
};

groupIds:可以是系统分类的 ID

  • 全部 all
  • 未分组 ungroup
  • 常用 favorite

例如获取未分组的标签: API 前缀/common/library/tags?libraryId=资源库 ID&groupIds[]=ungroup

获取标签组

  • URL: [get]/common/library/tags/group
  • 参数:
    • libraryId:string 资源库 ID
  • 返回值: IGroup[] 标签组列表

参数说明

type Params = {
libraryId: string;
};

返回值声明

type IGroup = {
/**标签组名称 */
name: string;
/**标签组id */
id: string;
/**标签组颜色 */
color: number;
/**子标签组 */
children: IGroup[];
};

新建标签组

  • URL: [post]/common/library/tags/group
  • 参数:
    • libraryId:string 资源库 ID
    • data:
      • name:string 标签组名称
  • 返回值: IGroup 标签组列表

参数说明

type Params = {
libraryId: string;
data: {
name: string;
};
};

重命名标签组

  • URL: [post]/common/library/tags/group
  • 参数:
    • libraryId:string 资源库 ID
    • data:
      • id:string 标签组 ID
      • rename:string 标签组新名称
  • 返回值: 无

参数说明

type Params = {
libraryId: string;
data: {
id: string;
rename: string;
};
};

删除标签组

  • URL: [post]/common/library/tags/group
  • 参数:
    • libraryId:string 资源库 ID
    • data:
      • id:string 标签组 ID
  • 返回值: 无

参数说明

type Params = {
libraryId: string;
data: {
id: string;
};
};