附件存储
附件存储策略扩展点支持扩展附件的上传和存储方式,如将附件存储到第三方云存储服务中。
扩展点接口如下:
upload方法用于上传附件,返回值为Mono<Attachment>,其中Attachment为上传成功后的附件对象。delete方法用于删除附件,返回值为Mono<Attachment>,其中Attachment为删除后的附件对象。getSharedURL方法用于获取附件的共享链接,返回值为Mono<URI>,其中URI为附件的共享链接。getPermalink方法用于获取附件的永久链接,返回值为Mono<URI>,其中URI为附件的永久链接。getThumbnailLinks方法用于按ThumbnailSize返回附件的缩略图链接。
从 Halo 2.27.0 开始,已移除自 2.22.0 起废弃的 ThumbnailProvider 接口及 thumbnail-provider 扩展点。旧插件应将缩略图能力迁移到 AttachmentHandler.getThumbnailLinks(),并将对应 ExtensionDefinition 的 extensionPointName 改为 attachment-handler。如果插件已经注册了 AttachmentHandler 实现,应在该实现中提供缩略图链接,并移除旧的缩略图扩展实现和注册定义。
AttachmentHandler 对应的 ExtensionPointDefinition 如下:
即声明 ExtensionDefinition 自定义模型对象时对应的 extensionPointName 为 attachment-handler。
源码参考:AttachmentHandler。
可以参考以下项目示例: