上传到GCP存储或使用bucket.getFiles()之后,将文件名保存在数据库中

阿德里安

我一直在搜索StackOverflow,但似乎尚未有人问过这个问题。这是关于将文件上传到GCP存储的架构问题。

TL; DR:直接使用bucket.getFiles()(从服务器)是否有任何问题,而不是将每个文件名存储在我的数据库中,然后一一询问并将其返回给客户端?

情况:

我正在开发一项功能,该功能将允许用户上传链接到交货单的图像附件。该送货单可以有多个附件。

我在客户端(移动设备)上使用了一个简单的上传按钮,然后将内容保存在GCP中的path/to/id-deliveryNote文件夹中,例如:path/to/id-deliveryNote/filename.jpg path/to/id-deliveryNote/filename2.jpgetc…

在应用程序的其他位置,用户应该能够单击并下载每个附件。

解决方案

在GCP中完成上传后,我问自己如何读取这些文件,并为用户提供该文件的下载链接。那是我找到了:bucket.getFiles()函数的时间。

由于我的文件路径都在同一个id-deliveryNote/前缀之下,因此我可以利用bucket.getFiles(prefix)诺言解析的使用,在诺言解析可以安全地将可用链接列表返回给我的用户之后。

问题

我没有将文件名存储在数据库的deliveryNote表中。依靠GCP知道一次交货的附件,这听起来可能有点问题。我看到的方式是,我不需要在数据库中复制信息(也可以在两个地方处理故障),如果我需要这些文件,我会向GCP询问以提供它们的链接。相反的想法是,存储名称,您将能够为客户端列出附件,然后在用户单击特定附件时生成下载链接。

我的问题是:直接使用bucket.getFiles()(从服务器)是否有任何问题,而不是将每个文件名存储在我的数据库中,然后一一询问并将其返回给客户端?

可能会影响所选方法的几点:

  • 每个通话的GCP费用差异?
  • 无效的应用程序数据结构?
  • 其他事情 ?
gso_gabriel

使用此方法返回要下载的文件的链接没有问题。在此方法的API文档(可在此处访问)中它们甚至还显示了使用前缀返回文件的示例。您只需要注意Cloud Storage实际上并不使用真实文件夹,而仅使用看起来像它们在文件夹中的名称-在这种情况下,此处提供了更多详细信息-因此,在使用名称和前缀时,您不会混淆概念。

对于定价点,您可以在本文档中获得Google Cloud Storage的整体价格,包括每个操作的成本-例如,对于获取对象,检索存储桶和对象元数据的每50000个操作,您将花费0.02 USD数据等。检查之后,您还可以与数据库成本进行比较,以检查这是否会影响您。

总而言之,您没有问题可以遵循。将名称存储在数据库中的优点是,即使您可能在两处都遇到故障,但您更有可能仅在一个地方遇到问题,因此复制将是一件很棒的事情。因此,您只需要决定哪一个最适合您。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

节点restful api,文件上传并在发布前将文件名保存在数据库中

来自分类Dev

为什么将文件名和上传路径存储在数据库中?

来自分类Dev

无法在数据库中存储文件名

来自分类Dev

使用spring-mvc和hibernate将文件名存储在数据库中,而不是将文件本身存储在数据库中

来自分类Dev

将上传文件的文件名存储在数据库Java中

来自分类Dev

使用 gsutil 将文件上传到 GCP

来自分类Dev

需要帮助使用php将多个图像上传到不同的文件夹并将文件名存储在mysql数据库中

来自分类Dev

我应该将上传的文件名存储在数据库中吗?

来自分类Dev

使用c#将excel文件保存在数据库中

来自分类Dev

使用 Nodejs 自动在数据库上保存文件名

来自分类Dev

使用php下载文件,文件存储在文件夹中,文件名存储在数据库中

来自分类Dev

我可以将任何内容上传到GCP存储吗?

来自分类Dev

Codeigniter上传:在数据库中插入时,图像的文件名返回null

来自分类Dev

如何制作将文本保存在数据库中并在服务器上上传文件的表单

来自分类Dev

将图像上传到服务器的最佳方法是什么?保存在数据库还是服务器文件夹中?

来自分类Dev

DreamFactory:如何将图像上传到文件服务器并将图像的路径保存在数据库中?

来自分类Dev

Web2py将静态文件上传到数据库的文件名不同

来自分类Dev

Laravel 5.2 +上传文件并将名称保存在数据库中

来自分类Dev

多文件上传+ textInput-不保存在数据库中(yii2)

来自分类Dev

Laravel 5.2 +上传文件并将名称保存在数据库中

来自分类Dev

使用类将表单数据保存在数据库中

来自分类Dev

如何使用自定义键将数据保存在数据库中?

来自分类Dev

访问作为文件名存储在数据库中但存储在laravel公共文件夹中的多个图像

来自分类Dev

如何在“编辑视图”中显示文件名?文件名存储在图像文件夹中,也存储在数据库中

来自分类Dev

如何使用django框架发送图像文件而不保存在数据库中

来自分类Dev

使用保存在数据库中的.jrtx

来自分类Dev

MVVM 使用 ICommand 保存在数据库中

来自分类Dev

如何使用单选按钮将nil保存在数据库中

来自分类Dev

使用Django将值保存在数据库中

Related 相关文章

  1. 1

    节点restful api,文件上传并在发布前将文件名保存在数据库中

  2. 2

    为什么将文件名和上传路径存储在数据库中?

  3. 3

    无法在数据库中存储文件名

  4. 4

    使用spring-mvc和hibernate将文件名存储在数据库中,而不是将文件本身存储在数据库中

  5. 5

    将上传文件的文件名存储在数据库Java中

  6. 6

    使用 gsutil 将文件上传到 GCP

  7. 7

    需要帮助使用php将多个图像上传到不同的文件夹并将文件名存储在mysql数据库中

  8. 8

    我应该将上传的文件名存储在数据库中吗?

  9. 9

    使用c#将excel文件保存在数据库中

  10. 10

    使用 Nodejs 自动在数据库上保存文件名

  11. 11

    使用php下载文件,文件存储在文件夹中,文件名存储在数据库中

  12. 12

    我可以将任何内容上传到GCP存储吗?

  13. 13

    Codeigniter上传:在数据库中插入时,图像的文件名返回null

  14. 14

    如何制作将文本保存在数据库中并在服务器上上传文件的表单

  15. 15

    将图像上传到服务器的最佳方法是什么?保存在数据库还是服务器文件夹中?

  16. 16

    DreamFactory:如何将图像上传到文件服务器并将图像的路径保存在数据库中?

  17. 17

    Web2py将静态文件上传到数据库的文件名不同

  18. 18

    Laravel 5.2 +上传文件并将名称保存在数据库中

  19. 19

    多文件上传+ textInput-不保存在数据库中(yii2)

  20. 20

    Laravel 5.2 +上传文件并将名称保存在数据库中

  21. 21

    使用类将表单数据保存在数据库中

  22. 22

    如何使用自定义键将数据保存在数据库中?

  23. 23

    访问作为文件名存储在数据库中但存储在laravel公共文件夹中的多个图像

  24. 24

    如何在“编辑视图”中显示文件名?文件名存储在图像文件夹中,也存储在数据库中

  25. 25

    如何使用django框架发送图像文件而不保存在数据库中

  26. 26

    使用保存在数据库中的.jrtx

  27. 27

    MVVM 使用 ICommand 保存在数据库中

  28. 28

    如何使用单选按钮将nil保存在数据库中

  29. 29

    使用Django将值保存在数据库中

热门标签

归档