草庐IT

GridFS-Stream

全部标签

javascript - 显示来自 GridFs (MongoDB) 的图像

我正在使用以下代码使用GridFs读取保存在MongoDB中的图像文件:app.get('/picture',function(req,res){varreadstream=gfs.createReadStream({filename:'trooper.jpeg'});readstream.on('data',function(data){//Wegotabufferofdata...varbuf2=newBuffer(data).toString('base64');res.send(buf2.toString())console.log(buf2.toString());conso

node.js - 从 Gridfs 读取 block 并转换为缓冲区

我有一个关于缓冲区的问题。这是我的代码:varGrid=require('gridfs-stream');varmongodb=require('mongodb');vargfs=Grid(db,mongodb);vardeferred=Q.defer();varimage_buf=newBuffer('buffer');varreadableStream=gfs.createReadStream(name);readableStream.on('data',function(chunk){console.log(chunk);image_buf=Buffer.concat([imag

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

使用gridfs-stream,查找和抓取文件时如何指定bucket名称?我的问题是在stackoverflow上发现的以下问题的后续问题HowcanIspecifyaGridFSbucket那里的解决方案提供了一个示例,说明如何在调用createWriteStream时指定存储桶。根据@vsivsi提供的代码,我可以使用以下代码中的“root”选项将文件添加到我的自定义存储桶://fyi,req.filehasbeenpopulatedusingmultervargfs=Grid(mongoose.connection.db);varwriteStream=gfs.createWri

php - MongoDB GridFS 存储多种尺寸的图像或使用动态调整大小

在我的网络应用程序中,我使用MongoDBGridFS来存储用户上传的图像。站点的其余部分由MySQL管理。在照片表(在mysql中)中,我有三个字段用于存储文件对象的MongoId。小中等大所以我存储了图像的三个版本。小型、中型和大型。我的问题是,有时我需要使用比图像“小”版本更小的缩略图(即在小部件框、消息头像等中),或者我需要使用略小的版本中等图像。所以我的问题是,最好只在GridFS系统中存储一张图像,然后在照片表中有一个字段存储MongoID,然后创建一个动态调整图像大小的脚本(即http://localhost/image/fetch/{mongoid}?resize=50

performance - MongoDB gridFS - 文件名长度、索引、性能

我正在研究gridFS,我有几个问题。1)gridFS通过生成的_id自动索引文件。但是大多数时候我是通过文件名获取文件的,所以我应该自己在“文件名”上创建索引吗?2)gridFS没有文件夹,只有文件名,但我可以通过使用带斜杠的文件名来模拟文件夹,对吗?3)如果我在“文件名”上建立索引——使用短文件名在性能方面是否更好?我的意思是-如果我使用24个符号长+后缀的用户_id,例如"/images/avatar_4f1d36b58e42ba3836ed178e_t.jpg",在如此长的字段上建立索引不会减慢我的系统速度吗?使用短用户登录名而不是_id会更好(更快)吗?

ruby - 如何使用 GridFS 上传文件并将其直接保存到 MongoDB

我有一个托管在heroku上的Sinatra应用程序,我正在尝试启用文件上传。我知道heroku不允许保存到文件系统,所以我试图直接使用GridFS将图像保存到MongoDB。但我不知道怎么办。使用下面的代码,我可以保存到文件系统base_dir=Dir.pwd+"/static/images/channels/"File.open("#{base_dir}"+params['logo'][:filename],"w")do|f|f.write(params['logo'][:tempfile].read)end如何在不先将文件保存到文件系统的情况下将文件直接保存到MongoDB?

java - 使用 GridFS 确保文件插入完成 - MongoDB Java API

我有一个上传图片的REST服务,这是负责在mongodb中注册的主要代码:publicStringwriteFiles(InputStreaminputStream,StringfileName,StringcontentType)throwsIOException{//savethefileGridFSgridFS=newGridFS(getDB(),Collections.PICTURES_FILES.name());GridFSInputFilegridFSInputFile=gridFS.createFile(inputStream,fileName);gridFSInputF

MongoDB GridFS 文件大小对于相对较小的文件来说很大

我正在做一些测试,看看我们是否可以在MongoDB上使用GridFS来存储文件以供将来的应用程序使用;我正在使用10gen的C#驱动程序将一个80Mb的文件“上传”到数据库。第一次添加很好,花了大约3秒,这在我的测试机器上还算不错;然而,以后添加同一个文件需要更长的时间,最多30秒,最终MongoDB告诉我它耗尽了内存并崩溃了。添加10个大小为80Mb的文件会导致在系统崩溃之前为我的数据库创建8个文件,名为dbaseName.0到dbaseName.7,它们的文件大小从16Mb呈指数增长到512Mb,从文件0到5,然后是文件6和7个都是512Mb。这些文件不到2Gb,显然第10次添加文

java - GridFS 使用 Java 驱动程序仅检索一个文件范围

文档提到可以使用gridFS检索文档的范围。但是我还没有找到有关此的更多详细信息。我想使用java驱动程序为grails应用程序获取一系列文件以支持音频流。在这种情况下,我是否需要手动获取和组装包,还是有更好的方法? 最佳答案 您可以跳过不需要的文件部分,只从那里阅读您需要的部分。GridFSDBFilefile=files.findOne("file");InputStreaminputStream=file.getInputStream();longactuallySkipped=inputStream.skip(numberO

axios / fetch 实现 stream 流式请求

axios是一个支持node端和浏览器端的易用、简洁且高效的http库。本文主要介绍axios如何实现stream流式请求,注意这里需要区分node环境和浏览器环境。一、node端代码演示:constaxios=require('axios');axios({method:'get',url:'http://tiven.cn/static/img/axios-stream-01-kcUzNdZO.jpg',responseType:'stream'}).then(response=>{response.data.on('data',(chunk)=>{//处理流数据的逻辑});response