问题标签 [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.
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 配置中必须缺少某些内容以允许过期标头。
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。
mongodb - 使用 GridFS - 它应该在单独的数据库上吗?
我正在创建一个具有大量音频存储、TB 级的站点,并且我希望使用 GridFS 进行分片,并能够轻松地在多台机器上扩展数据库。
我的问题是将文件放在单独的 mongo 数据库中会更好吗?mongodb 中会有大量文档,我只是不确定当您开始使用 GridFS 部分进行分片时会发生什么。
谢谢!
node.js - Nodejs - HTTP 范围支持/部分文件下载
我正在创建一个音乐网络应用程序,它可以流式传输我存储在 MongoDB(GridFS) 中的 MP3。
我的问题:如何添加 http 范围支持,以便我可以开始流式传输音频文件 1/2,而无需等待缓冲区。
我知道 GridFS 支持读取 X 字节 - X 字节,所以基本上我只需要知道如何让 nodejs 理解它只需要字节 X - X。
谢谢!
php - Mongo 数据库和多个文件上的多个 GridFS
我想知道在 Mongo 中是否有可能有多个 GridFS?我问的原因是因为我正在使用 Mongo 进行视频和图像上传。问题是我希望它们是单独的集合,但我正在使用
它使用相同的集合。那么如何将这两种类型分开并仍然使用 gridFS 呢?
同样对于图像,图像文件具有与一个 ID 关联的图像的多个版本。这可以在 GridFS 中完成吗?grid->StoreFile
似乎只存储一个文件。
php - Imagick 和 GridFS
我将图像存储在 MongoDB 的 GridFS 中。当我拉出图像时,我想调整它的大小,然后将其存储回数据库。我试过这个:
但这会在 Imagick 中引发错误。现在我可以将它临时写入磁盘并让 Imagick 读取该文件,但这似乎还有很长的路要走。关于更好的方法来做到这一点的任何建议?
php - 在 MongoDB GridFS 中存储图像
我正在讨论将图像存储在 Mongo GridFS 或云文件系统中。由于几个原因,我倾向于云计算。使用的语言是 Nginx 服务器上的 PHP。
在 GridFS 中存储图像会增加数据库的大小。因此,更多的数据库必须在内存中,当涉及到分片之类的事情时,我将花费更多的时间/金钱来管理服务器。
从 GridFS 检索图像比云需要更长的时间,因为我必须 a) 使用 id 查询图像 b) 将图像读入内存 c) 使用 php 标头显示图像
云会更好,因为它是直接到云的图像的 url。
这些理由听起来有道理吗,还是我应该朝着不同的方向发展?
javascript - MongoDB 从 shell 中删除 GridFS 对象
我使用 GridFS 将文件存储在 MongoDB 中。我需要从 JavaScript shell 中按 ID 删除其中一些文件。我需要使用它的 ID 删除单个文件。我想我可以这样做:
这在某种程度上有效;它从集合中删除文件,fs.files
但不会从集合中删除块本身fs.chunks
。我知道的原因是因为我在 RockMongo 之前和之后检查了两个集合的长度。
我可以遍历这些块并删除那些引用该文件的块,但是有没有更好的内置方法呢?
mongodb - GridFS 和标准集合、内存使用
据我所知,MongoDB 针对所有数据都放入内存的情况进行了优化。据我了解,GridFS 使用标准集合和所有标准存储方法。是吗?
这是否意味着存储大量数据(在我的情况下为图像),当前内存量更大,它会从内存中取出我的真实数据?
也许 MongoDB 足够聪明,可以降低 GridFS 集合的优先级?
php - 使用 PHP 在 mongo GridFs 中创建自己的 files_id
为了更好地分配分片 Mongo GridFs 中的文件,我想创建自己的 files_id。此处描述了如何在 Java 中完成此操作:
http://groups.google.com/group/mongodb-user/msg/524bae1602770587
但是如何在 PHP 中做到这一点?我在 API 文档中找不到任何提示,我使用 storeBytes 来保存文件: