资源库
获取资源库默认分类文件数量
- 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 资源库 IDdata
:name
:string 文件夹名称
- 返回值:IFolder 创建的文件夹信息,失败返回非 200 状态码的错误
参数声明:
type Params = {
libraryId: string;
data: {
name: string;
};
};
创建文件夹
- URL:
[post]/common/library/folderList/subFolder
- 参数:
libraryId
:string 资源库 IDdata
:parentId
:string 父文件夹 IDname
:string 文件夹名称
- 返回值:IFolder(详细声明见上方),创建的子文件夹信息,失败返回非 200 状态码的错误
参数声明
type Params = {
libraryId: string;
data: {
parentId: string;
name: string;
};
};
重命名文件夹
- URL:
[put]/common/library/folderList/rename
- 参数:
libraryId
:string 资源库 IDdata
:id
:string 文件夹 IDname
:string 新名称
- 返回值: 无,失败返回非 200 状态码的错误
参数声明
type Params = {
libraryId: string;
data: {
id: string;
name: string;
};
};
移动文件夹
- URL:
[put]/common/library/folderList/move
- 参数:
libraryId
:string 资源库 IDdata
: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 资源库 IDdata
: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 资源库 IDdata
:name
:string 文件夹名称
- 返回值: 创建的智能文件夹信息,失败返回非 200 状态码的错误
参数声明
type Params = {
libraryId: string;
data: {
name: string;
};
};
重命名智能文件夹
- URL:
[put]/common/library/smartFolderList/rename
- 参数:
libraryId
:string 资源库 IDdata
:id
:string 文件夹 IDname
:string 新名称
- 返回值: 无,失败返回非 200 状态码的错误
参数声明
type Params = {
libraryId: string;
data: {
id: string;
name: string;
};
};
删除智能文件夹
- URL:
[delete]/common/library/smartFolderList
- 参数:
libraryId
:string 资源库 IDdata
: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 资源库 IDdata
:id
:string 文件夹 ID
- 返回值: 无,失败返回非 200 状态码的错误
参数声明
type Params = {
libraryId: string;
data: {
id: string;
};
};
删除个人收藏
- URL:
[delete]/common/library/personalFavorite
- 参数:
libraryId
:string 资源库 IDdata
: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 资源库 IDfolderIds
: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 资源库 IDparentId
: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
: 资源库 IDparentId
: 父文件夹 ID(可选)paths
: 文件路径数组metadataOptionsMap
: 路径与元数据选项的映射
- 返回值: 无,添加导入任务失败返回非 200 状态码的错误,添加成功不等于导入成功噢
参数声明
type Params = {
libraryId: string;
parentId?: string;
paths: string[];
metadataOptionsMap: {
[path: string]: IMetadata;
};
};
删除文件
- URL:
[delete]/common/library/files
- 参数:
libraryId
: 资源库 IDmetaId
: 元数据 ID
- 返回值: 无,删除失败返回非 200 状态码的错误
参数声明
type Params = {
libraryId: string;
metaId: string;
};
使用默认程序打开文件
- URL:
[post]/common/library/files/open
- 参数:
libraryId
:string 资源库 IDmetaId
:string 元数据 IDappPath
: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 资源库 IDmetaId
:string[] 元数据 ID
- 返回值:IOpenApp[] 第三方软件列表
返回值声明
type IOpenApp = {
/**软件名称 */
name: string;
/**软件图标路径,可能为空 */
iconPath: string;
/**软件路径 */
path: string;
};
通过零泉查看文件
- URL:
[get]/common/library/files/viewer
- 参数:
libraryId
:string 资源库 IDmetaIds
:string[] 元数据 ID
- 返回值: 无
参数说明
type Params = {
libraryId: string;
metaIds: string[];
};
复制文件
- URL:
[post]/common/library/files/copy
- 参数:
libraryId
:string 资源库 IDmetaIds
: 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 资源库 IDgroupIds
: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 资源库 IDdata
:name
:string 标签组名称
- 返回值: IGroup 标签组列表
参数说明
type Params = {
libraryId: string;
data: {
name: string;
};
};
重命名标签组
- URL:
[post]/common/library/tags/group
- 参数:
libraryId
:string 资源库 IDdata
:id
:string 标签组 IDrename
:string 标签组新名称
- 返回值: 无
参数说明
type Params = {
libraryId: string;
data: {
id: string;
rename: string;
};
};
删除标签组
- URL:
[post]/common/library/tags/group
- 参数:
libraryId
:string 资源库 IDdata
:id
:string 标签组 ID
- 返回值: 无
参数说明
type Params = {
libraryId: string;
data: {
id: string;
};
};