问题标签 [gridfs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
888 浏览

codeigniter - 通过 Nginx 从 Mongo GridFS 提供动态内容而不会出现 404 错误

我在 CodeIgniter 中有一个动态内容控制器,可以从 GridFS 中提取图像。服务器正在运行 nginx,我正在尝试在我的 nginx 配置中设置缓存控制标头,以将此动态内容控制器提供的图像缓存 7 天。我在我的 nginx 配置中正确设置了配置,但是我从 nginx 获得了 404 标头,因为这些文件实际上并不存在于服务器上。

我的缓存控制指令如下:

log_not_found 有助于防止 nginx 记录 404 错误,但发送到浏览器的标头仍然是 404 错误。我尝试通过 php 的“header”函数手动设置标题,但是因为 nginx 使用的是 php-fpm,所以它做了一些奇怪的事情。

谁能指出我如何正确设置缓存控制标头以应对这种情况?谢谢大家 =)

更新:

我将我的 nginx conf 更改为所有静态文件和动态控制器的特殊位置。

Nginx 正在静态文件上设置正确的过期标头,但我无法让 fastcgi 和 nginx 为动态输出图像输出过期标头。在提供 php 文件时,我的 fastcgi 配置中必须缺少某些内容以允许过期标头。

0 投票
3 回答
4252 浏览

python - pymongo 从 GridFS 中获取图像

我在玩 MongoDB 和 pymongo API。我可以将图像文件放入 GridFS - 看起来很简单:

看起来它已经奏效了。我还可以使用返回的 _id 查询 GridFS:

但我似乎无法恢复整个文件 - 看起来我得到了一个块?

我对原始文件做了一个tell(),你可以看到它比我从GridFS中得到的要大得多。如果我对从 GridFS 返回的文件执行 tell(),它位于 274 区域内。(我知道 tell() 只是告诉您文件中的指针位置,但它表明它有多大是在阅读之后。)

我显然在这里遗漏了一些东西!如何将文件从 GridFS 中全部取出?

我在 python 的 v2.7 上运行 v2.0.2 的 mongodb 和 v2.1 的 pymongo。

0 投票
1 回答
1241 浏览

mongodb - 使用 GridFS - 它应该在单独的数据库上吗?

我正在创建一个具有大量音频存储、TB 级的站点,并且我希望使用 GridFS 进行分片,并能够轻松地在多台机器上扩展数据库。

我的问题是将文件放在单独的 mongo 数据库中会更好吗?mongodb 中会有大量文档,我只是不确定当您开始使用 GridFS 部分进行分片时会发生什么。

谢谢!

0 投票
1 回答
7556 浏览

node.js - Nodejs - HTTP 范围支持/部分文件下载

我正在创建一个音乐网络应用程序,它可以流式传输我存储在 MongoDB(GridFS) 中的 MP3。

我的问题:如何添加 http 范围支持,以便我可以开始流式传输音频文件 1/2,而无需等待缓冲区。

我知道 GridFS 支持读取 X 字节 - X 字节,所以基本上我只需要知道如何让 nodejs 理解它只需要字节 X - X。

谢谢!

0 投票
1 回答
1526 浏览

php - Mongo 数据库和多个文件上的多个 GridFS

我想知道在 Mongo 中是否有可能有多个 GridFS?我问的原因是因为我正在使用 Mongo 进行视频和图像上传。问题是我希望它们是单独的集合,但我正在使用

它使用相同的集合。那么如何将这两种类型分开并仍然使用 gridFS 呢?

同样对于图像,图像文件具有与一个 ID 关联的图像的多个版本。这可以在 GridFS 中完成吗?grid->StoreFile似乎只存储一个文件。

0 投票
2 回答
584 浏览

php - Imagick 和 GridFS

我将图像存储在 MongoDB 的 GridFS 中。当我拉出图像时,我想调整它的大小,然后将其存储回数据库。我试过这个:

但这会在 Imagick 中引发错误。现在我可以将它临时写入磁盘并让 Imagick 读取该文件,但这似乎还有很长的路要走。关于更好的方法来做到这一点的任何建议?

0 投票
1 回答
1897 浏览

php - 在 MongoDB GridFS 中存储图像

我正在讨论将图像存储在 Mongo GridFS 或云文件系统中。由于几个原因,我倾向于云计算。使用的语言是 Nginx 服务器上的 PHP。

  1. 在 GridFS 中存储图像会增加数据库的大小。因此,更多的数据库必须在内存中,当涉及到分片之类的事情时,我将花费更多的时间/金钱来管理服务器。

  2. 从 GridFS 检索图像比云需要更长的时间,因为我必须 a) 使用 id 查询图像 b) 将图像读入内存 c) 使用 php 标头显示图像

云会更好,因为它是直接到云的图像的 url。

这些理由听起来有道理吗,还是我应该朝着不同的方向发展?

0 投票
3 回答
16999 浏览

javascript - MongoDB 从 shell 中删除 GridFS 对象

我使用 GridFS 将文件存储在 MongoDB 中。我需要从 JavaScript shell 中按 ID 删除其中一些文件。我需要使用它的 ID 删除单个文件。我想我可以这样做:

这在某种程度上有效;它从集合中删除文件,fs.files但不会从集合中删除块本身fs.chunks。我知道的原因是因为我在 RockMongo 之前和之后检查了两个集合的长度。

我可以遍历这些块并删除那些引用该文件的块,但是有没有更好的内置方法呢?

0 投票
1 回答
827 浏览

mongodb - GridFS 和标准集合、内存使用

据我所知,MongoDB 针对所有数据都放入内存的情况进行了优化。据我了解,GridFS 使用标准集合和所有标准存储方法。是吗?

这是否意味着存储大量数据(在我的情况下为图像),当前内存量更大,它会从内存中取出我的真实数据?

也许 MongoDB 足够聪明,可以降低 GridFS 集合的优先级?

0 投票
1 回答
644 浏览

php - 使用 PHP 在 mongo GridFs 中创建自己的 files_id

为了更好地分配分片 Mongo GridFs 中的文件,我想创建自己的 files_id。此处描述了如何在 Java 中完成此操作:

http://groups.google.com/group/mongodb-user/msg/524bae1602770587

但是如何在 PHP 中做到这一点?我在 API 文档中找不到任何提示,我使用 storeBytes 来保存文件:

http://www.php.net/manual/en/mongogridfs.storebytes.php