使用 GridFS 创建缩略图MongoDB + PHP

发布于 2024-09-26 14:29:40 字数 510 浏览 5 评论 0原文

我正在创建一个网站,一个客户将出售他的摄影作品,他出售了很多摄影作品,并且可能会获得相当多的流量。每天大概有 2000-5000 个独立用户。我正在使用 MongoDB 和 PHP,我读到我应该使用 GridFS 来存储这些大文件。 2MB-5MB 以上的照片,但显然 BW 会非常昂贵(我在云托管上),并且加载这些图像将使页面加载永远持续下去。

那么,如何在 PHP 和 MongoDB 中使用 GridFS 创建缩略图?我用谷歌搜索了一下,除了人们指出的之外,我似乎找不到任何真实的信息: http://www.php.net/manual/en/class.mongogridfs.php

但我不知道如何处理这些信息。我需要吗(我希望不需要,这会有点混乱):

上传 ->存储原始->使用 GD Lib 调整原始大小 ->将图像大小调整为 GridFS 作为原始图像的元值?

I'm creating a site where a client who will be selling his photography which he sells a lot of it and will probably get quite a bit of traffic. Probably around 2k-5k uniques a day. I'm using MongoDB with PHP and I read i should use GridFS to store these large files. Upwards of 2MB-5MB photos, but obviously BW will be extremely spendy (im on cloud hosting) and loading of of these images will make page loads take forever.

So, how do I create thumbnails with GridFS in PHP and MongoDB? I Googled it and I can't seem to find any real information except people pointing to: http://www.php.net/manual/en/class.mongogridfs.php

but im not sure what to do with that information. Do I need to (i hope not, this would be sort of messy):

Upload -> store original -> use GD Lib to resize original -> resized image to GridFS as a meta value to the original image?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

分開簡單 2024-10-03 14:29:40

我最终只是创建了自己的缩略图,然后使用 GD2 将其保存到 MongoDB,然后将缩略图与完整大小一起保存。

I ended up just creating my own thumbnails after saving it to MongoDB with GD2 and then saving the thumbnails as well alongside the full size.

情绪少女 2024-10-03 14:29:40

我做的一件事是在 try {} catch 中

  1. 使用 META 信息存储原始图像(或最大尺寸),例如 user_id、post_id、size = original、height = xxx、width = yyy
  2. 循环遍历所有尺寸并使用相同的 META 存储info 作为主要文件,size = $size,width = xxx,height = yyy,parent_id = 你的原始文件的 ID

如果发生一些异常(gd 失败,mongo 失败等...)那么你删除文件,这样就不会浪费存储空间。

One thing I did was inside a try {} catch

  1. Store original image (or your largest size) using META info like user_id, post_id, size = original, height = xxx, width = yyy
  2. Loop through all your sizes and store using the same META info as the main one, size = $size, width = xxx, height = yyy, parent_id = your original file's ID

if some exception happens (gd fails, mongo fails, etc...) then you remove the files so you don't waste storage.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文