Strapi删除与条目相关的文件。

9
我已经实现了与条目相关的文件上传功能(点击这里)
例如,我有一个集合类型Articles,该集合具有字段photos
上传文件时,我可以指定集合、集合中的条目和要添加媒体数据的字段。
现在我想实现相同的删除文件功能。
我该如何实现呢?据我所知,没有类似的方法能够删除媒体项目并自动删除photos字段的关联条目。因此,我需要分几步来完成:
  1. 获取我想要删除photos字段项的Articles条目。
  2. 使用PUT请求更新Articles条目,从中删除photos字段的一个条目。
  3. 使用DELETE请求删除关联的上传。
然而,这样做是否会导致第1步和第2步之间出现数据竞争条件?我该如何确保第2步更新最新的Entry,并且在第1步获取它之后没有对Entry进行更新?

1
你找到任何解决方案了吗? - Ako
1个回答

1

您需要修改特定API的删除服务。

如果您想要删除关联文件或文件ID等内容,请向后端传递一个提示,并在运行删除服务时检查该“提示”是否存在,如果存在,则删除文件。

const file = await strapi.plugins['upload'].services.upload.fetch({ id });
await strapi.plugins['upload'].services.upload.remove(file);

这是来自 Strapi 文档的示例:

async delete(entityId, params) {
  // some logic here
  const result = await super.delete(entityId, params);
  // some more logic

  return result;
}

您可以在此处了解更多信息: https://docs.strapi.io/dev-docs/backend-customization/services#extending-core-services


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接