Dinario Asked:2022-07-19 03:44:26 +0000 UTC2022-07-19 03:44:26 +0000 UTC 2022-07-19 03:44:26 +0000 UTC API。文件预载 772 使用JSON:API规范创建了一个 api 。但它不提供下载文件。因此决定分两个阶段创建资源: 将图像预加载到临时文件夹而不链接到资源 保存带有指向先前加载的图像的链接的资源 是否有描述此保存方法的规范?如何从不必要的文件中清除临时存储? спецификация 1 个回答 Voted Best Answer Dinario 2022-07-19T16:41:04Z2022-07-19T16:41:04Z posts我们以一个带有字段的资源为例image。出现几个选项: 1.临时存放 首先,我们将文件上传到一个临时文件夹,并将其添加到数据库中。例如,在temporary_storage具有字段id、type、path、的表中created_at。文件验证在此处进行。链接可能是这样的/posts/upload。我们返回给客户id和path. 接下来,保存资源本身。将文件从临时存储移动到永久存储。并从表中删除记录temporary_storage。 使用这种方法,您可以删除不必要的文件,例如一天前创建的文件。 2.先保存资源 将该字段设为image可选并添加status. 我们保存没有图片的资源并设置草稿状态。接下来,上传文件并验证它。由于草稿状态,我们不怕文件上传错误。 3. 持久化存储 正如@Mike 建议的那样,可以为文件创建单独的资源,并将它们链接到其他资源。但是由于清理垃圾文件和验证文件的额外复杂性,这种方法不太适合我们。 结论:第一种方法似乎更具通用性和可扩展性。但是第二种方法肯定更容易。在这个阶段,我们倾向于第二种选择。
posts我们以一个带有字段的资源为例image。出现几个选项:1.临时存放
首先,我们将文件上传到一个临时文件夹,并将其添加到数据库中。例如,在
temporary_storage具有字段id、type、path、的表中created_at。文件验证在此处进行。链接可能是这样的/posts/upload。我们返回给客户id和path.接下来,保存资源本身。将文件从临时存储移动到永久存储。并从表中删除记录
temporary_storage。使用这种方法,您可以删除不必要的文件,例如一天前创建的文件。
2.先保存资源
将该字段设为
image可选并添加status. 我们保存没有图片的资源并设置草稿状态。接下来,上传文件并验证它。由于草稿状态,我们不怕文件上传错误。3. 持久化存储
正如@Mike 建议的那样,可以为文件创建单独的资源,并将它们链接到其他资源。但是由于清理垃圾文件和验证文件的额外复杂性,这种方法不太适合我们。
结论:第一种方法似乎更具通用性和可扩展性。但是第二种方法肯定更容易。在这个阶段,我们倾向于第二种选择。