标签: gridfs

使用 gridfs-stream 执行 find() 时如何指定 GridFS 存储桶

使用gridfs-stream,查找和获取文件时如何指定bucket名称?

我的问题是在如何指定 GridFS 存储桶的stackoverflow 上找到的以下问题的后续问题

那里的解决方案提供了一个示例,说明如何在调用 createWriteStream 时指定存储桶。根据@vsivsi 提供的代码,我可以使用以下代码中的“root”选项将文件添加到我的自定义存储桶中:

// fyi, req.file has been populated using multer
var gfs = Grid(mongoose.connection.db);
var writeStream = gfs.createWriteStream({
    filename: req.file.originalname,
    mode: 'w',
    content_type: req.file.mimetype,
    root: 'private'
});
Run Code Online (Sandbox Code Playgroud)

这成功地将我的文件添加到 private.files 和 private.chunks。所以现在我想查找并阅读我上传的文件。我的 find() 不使用存储桶,如下所示:

var gfs = Grid(mongoose.connection.db);
gfs.find({
    filename: req.params.filename
}).toArray(function(err, files){ 
     // bunch of processing here... 
});
Run Code Online (Sandbox Code Playgroud)

现在我如何知道要查询哪个存储桶/根?

我假设在调用 createReadStream() 时我将能够使用相同的“root”选项,但首先我需要找到它。有没有办法告诉 gridfs-stream 使用哪个存储桶/根?

javascript bucket mongodb gridfs gridfs-stream

2
推荐指数
1
解决办法
1735
查看次数

Pymongo GridFS 放置类型/属性错误

Put与和一起使用时导致的操作TypeAttribute错误。然而,同样的操作通过utility.Appreciate 指针传递。MongoClientGridFSmongofiles

版本信息

[xxxx@yyyy ~]$ python
Python 3.5.1 (default, Jan 20 2018, 19:04:00)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-18)] on linux
Type "help", "copyright", "credits" or "license" for more information.


[xxxx@yyyy ~]$ mongo
MongoDB shell version v3.6.1
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.1

>>> pymongo.version
'3.6.0'
Run Code Online (Sandbox Code Playgroud)

代码

>>> from pymongo import MongoClient
>>> from gridfs import GridFS
>>> from bson import objectid
>>> db = MongoClient().test
>>> fs = GridFS(db)
>>> …
Run Code Online (Sandbox Code Playgroud)

python pymongo gridfs

2
推荐指数
1
解决办法
2288
查看次数

使用 GridFSBucket 删除 .files 和 .chunk

我正在尝试删除 .files 和 .chunk 数据,但我发现的所有帖子要么已经过时,要么不适用于我的问题。

这是我的后端路线:

const mongoose = require("mongoose");
const config = require("config");
const db = config.get("mongoURI");
let gfs;
const conn = mongoose.createConnection(db);
conn.once("open", () => {
  gfs = new mongoose.mongo.GridFSBucket(conn.db, {
    bucketName: "photos"
  });
});

router.delete('/:imageID', async (req, res) => {
    gfs.delete({_id: req.params.imageID, root:"photos"}, function(error){
      test.equal(error, null);
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

mongodb node.js gridfs

2
推荐指数
1
解决办法
1124
查看次数

在GridFS中显示图像

我正在使用gridfs-stream https://github.com/aheckmann/gridfs-stream&当前我正在显示来自gridFS的图像。

当读取数据时,它给出以下输出。当我将此数据附加到时<img src="data:image/jpeg;base64,(data)">,图像不会显示。

  gfs
// create a read stream from gfs...
.createReadStream({ filename: 'error1.png' })
// and pipe it to Express' response
.pipe(res);
Run Code Online (Sandbox Code Playgroud)

输出res:- 在此处输入图片说明

编辑:-

我试过了:-

img.src = 'data:image/jpeg;base64,' + btoa(res);
Run Code Online (Sandbox Code Playgroud)

呈现的输出是:-

<img src="data:image/jpeg;base64,W29iamVjdCBPYmplY3Rd">
Run Code Online (Sandbox Code Playgroud)

没有显示图片。

javascript node.js gridfs angularjs

1
推荐指数
1
解决办法
2207
查看次数

MongoDB GridFS文件插入Java

我使用以下命令行将数据插入GridFS:

mongofiles --host localhost:27017 --db testmongo --collection files put D:/text.txt
Run Code Online (Sandbox Code Playgroud)

它有像_id filename chunkSize uploadDate md5 length这样的字段.

如何使用cmd或Java添加自己的字段?

java mongodb gridfs

1
推荐指数
1
解决办法
5581
查看次数

如何使用 golang 从 mongodb 提供文件

我正在开发一个 go 项目,我需要提供存储在 mongodb 中的文件。这些文件存储在 GridF 中。我使用 gopkg.in/mgo.v2 作为包来连接和查询数据库。

我可以从数据库检索文件,这并不难。

f, err := s.files.OpenId(id)
Run Code Online (Sandbox Code Playgroud)

但是我怎样才能通过 http 来提供该文件呢?我使用 JulienSchmidt 路由器来处理所有其他剩余请求。我找到的解决方案始终使用静态文件,而不是数据库中的文件。

提前致谢

fileserver go mongodb gridfs

1
推荐指数
1
解决办法
1699
查看次数

在我的 MongoDB 数据库中存储 PDF 文件并出现 PYmongo 错误

我想使用 PYMonbgo 和 gridfs 将 PDF 文件存储在我的 MongoDB 数据库(在 Ubuntu 中)中。但我收到错误“utf-8”编解码器无法解码位置 10 中的字节 0xe2:无效的连续字节

如何在 MongoDB 中使用 python 存储和接收 PDF?

from pymongo import MongoClient
import gridfs

db = MongoClient('mongodb://localhost:27017/').myDB
fs = gridfs.GridFS( db )
fileID = fs.put( open(('Test.pdf')  ))
out = fs.get(fileID)
Run Code Online (Sandbox Code Playgroud)

python mongodb pymongo gridfs

1
推荐指数
1
解决办法
2825
查看次数

1300万个文件gridfs mongo

我们必须存储大约1300万个文件并对文件执行一些标准操作.我们正在使用Windows.第一个问题是我们可以将它存储在文件系统中吗?文件总大小约为6000 TB.我正在检查MongoDB上的gridfs.我不知道这是不是一个好方法.我们将在服务器端使用Java.
如果它可以舒适地存储这些文件,那么获取文件并将其提供给用户以及文件重命名,元数据更新等操作的性能如何.
我们还需要稍后将所有文件备份到辅助文件系统存储.但gridfs中的文件将以块的形式存储.所以问题是我们如何快速获取所有这些文件并将其发送到辅助文件系统.
请让我知道我应采取的方法.

storage file mongodb gridfs

0
推荐指数
1
解决办法
1279
查看次数

使用Mongoid配置CarrierWave - GridFS

我遇到了麻烦,尝试使用CarrierWave在Rails 3中开发的文件上传Rest API,使用MongoDB数据库.

我想要做的是使用MongoDB系统GridFS存储一些文件(不仅是图像,而且是每种文件格式).我阅读了许多建议我使用CarrierWave gem的文档.

但是当我尝试配置它时出错.

我的开发环境:Gemfile:

source 'https://rubygems.org'

gem 'rails', '3.2.8'

# MongoDB
gem 'mongoid', :git => 'git://github.com/mongoid/mongoid.git'
gem 'carrierwave', :git => "git://github.com/jnicklas/carrierwave.git"
# gem 'carrierwave-mongoid', :require => 'carrierwave/mongoid'
gem 'mini_magick', :git => 'git://github.com/probablycorey/mini_magick.git'

gem 'bson_ext'
gem 'json'
Run Code Online (Sandbox Code Playgroud)

application.rb:

require File.expand_path('../boot', __FILE__)

# ActiveRecord will not be use with MongoDB
# require 'rails/all'
require "action_controller/railtie"
require "action_mailer/railtie"
require "active_resource/railtie"
require "rails/test_unit/railtie"
require "sprockets/railtie"
require "mongoid/railtie"
require "carrierwave"
# require "carrierwave/mongoid"
Run Code Online (Sandbox Code Playgroud)

我用mongoid.yml(config/mongoid.yml)文件定义数据库:

development:
  sessions:
    default:
      database: lf_rest_api_development
      hosts:
        - localhost:27017 …
Run Code Online (Sandbox Code Playgroud)

mongodb gridfs mongoid carrierwave ruby-on-rails-3.2

0
推荐指数
2
解决办法
4270
查看次数

仅在nodejs上使用mongoose列出所有GridF元数据

最近我一直在努力研究如何使用mongoose列出GridFs集合的所有元数据.我试过用这个

var mongoose    = require('mongoose');
public.schema = {
    filename    : { type: String, required: true },
    contentType : { type: String, required: true },
    length      : { type: Number, required: true },
    chunkSize   : { type: Number, required: true },
    uploadDate  : { type: Date, required: true },
    aliases     : { type: String, required: false },
    metadata    : { type: String, required: false },
    md5         : { type: String, required: true }
};

var schema = mongoose.Schema;
this.store = mongoose.model('file.files', …
Run Code Online (Sandbox Code Playgroud)

javascript mongoose mongodb node.js gridfs

0
推荐指数
1
解决办法
1815
查看次数