database - 在 S3 中使用带有外部存储的图像和缩略图进行数据库设计的最佳实践?

标签 database image amazon-s3 amazon

首先:我在 amazon s3 中保存图像。

所以我的图像的 URL 根是: https://myapp.s3.amazonaws.com/

我的设计表和关系:

表格文件

id     file_name
1      my_document         

表格图片

id document_id  missing_column??
1     1
2     1                  

表格images_sizes

id    images_id     image_size          file_name        file_extension
1         1          800                output1               .png
2         2          800                output2               .png
3         1          200                output1               .png
4         2          200                output2               .png

然后构建 url 以获取图像将是 https://myapp.s3.amazonaws.com/document_id/image_size/file_name+file_extension

但我不知道我的方法是否正确。这种建模方式的缺点是什么?你建议我另一种方式吗? images 表缺少一个列来区分不同的寄存器...我不知 Prop 体要做什么。

非常感谢你们!!

最佳答案

你为什么不只有一张 table ?

|Image 
----------------------------------------------------------
id | image_size(if you need to know size) | url(varchar)
----------------------------------------------------------

文件名可能很棘手。您可能有 2 个具有相同文件名的图像。在 S3 中使用 id 作为键名。如果您使用 id,则可以去掉上面的“url”列并遵循如下约定

https://myapp.s3.amazonaws.com/id.jpeg

您也不需要在 URL 和表格中使用 image_size,如果它是固定大小的话。 如果您要保存一组标准尺寸,则可以像 youtube 那样遵循约定 -

http://img.youtube.com/vi/<insert-youtube-video-id-here>/0.jpg
http://img.youtube.com/vi/<insert-youtube-video-id-here>/1.jpg
http://img.youtube.com/vi/<insert-youtube-video-id-here>/2.jpg
http://img.youtube.com/vi/<insert-youtube-video-id-here>/3.jpg

关于database - 在 S3 中使用带有外部存储的图像和缩略图进行数据库设计的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9235348/

相关文章:

python - 使用 Django rest 框架跨微服务共享数据库关系

database - 数据库表智能显示顺序

image - 如何将 []byte 对象转换为图像并将其作为 jpeg 图像存储在磁盘上

python - 如何使用 boto3 从 s3 获取最后修改的文件名

python - 我如何为使用的 EventStream 创建模拟,但 S3 Select API 用于基于 S3 Select 查询获取内容?

php - 将数百万张图像导入、调整大小并上传到 Amazon S3

database - ACCPAC 表

php - 为什么值 1 被插入到数据库中?

PHP 图片在上传到指定目录之前调整大小

Iphone - 来自 URL 数组的相片