文件适配器插件,如s3存储桶

时间:2017-02-03 07:03:00

标签: amazon-s3

我知道这可能是一个选项问题,但无论如何我都会问它。

对于iOS应用程序..

为什么我会像aws s3 bucket一样使用文件适配器附件到我的服务器后端,只在我的数据库中列出一个url,而不是仅仅在我的数据库表中存储文件?

我已经阅读了几个小时,并且无法找到解释为什么会出现这种情况的原因。使用存储桶的代码可能比在托管服务上存储数据要节省,或者如果不断直接从服务器提取文件,可能会出现性能问题?

我无法弄清楚,所有我能看到的是关于如何设置的狡猾。

由于

1 个答案:

答案 0 :(得分:1)

看来您的问题是在两个选项之间征求意见:

  • 使用存储在数据库中的文件的URL或
  • 在Amazon S3中存储文件
  • 将文件存储在“我的数据库表格中”

数据库高度优化用于存储和检索数据。它们还具有SQL的神奇功能,可以在几行中编写非常复杂的查询。关系数据库将其存储在行和列中,并创建索引,以便可以快速存储,搜索和检索信息。

另一方面,文件是'blobs'数据,这对数据库毫无意义。它只是一个必须存储在某处的数据序列。数据库不能非常有效地存储文件 - 事实上,文件通常只存储在本地文件系统中,并引用存储在数据库中的文件。

因此,它实际上归结为将文件存储在最合适的系统中。

在Amazon S3中而不是在数据库中存储文件的一些优点是:

  • 跨三个不同数据中心复制文件
  • 如果安全设置允许,则通过互联网(通过URL)提供内容
  • 高度可扩展的存储空间(您希望扩展数据库只是为了提供文件吗?)
  • 您可以存储的数据量没有限制(当文件系统填满时,数据库将耗尽空间)
  • 更高效的数据库备份(因为它不备份大量低使用率的文件)
  • 利用各种存储类,例如Standard-Infrequent Access和Amazon Glacier

将文件存储在数据库中的优点:

  • 只有一个系统可以存储数据和文件
  • 无需使用AWS凭据 - 只需使用现有的SQL凭据
  • 无需保持两个系统同步(数据库和S3存储)