问题标签 [collectionfs]

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 回答
268 浏览

javascript - 如何为 GridFS 覆盖 DropzoneJS 的 XHR?

我目前正在开发一个图像共享平台,使用 Meteor、CollectionFS 和 GridFS StorageAdapter。

我也在使用优秀的包dbarrett:dropzonejs,但问题是它对 CollectionFS 的实现,特别是关于 XHR 和 uploadprogress 的东西。

现在,我使用此代码

问题:上传文件时,我在控制台中注意到不需要的 POST 请求以及来自 CollectionFS 的 PUT 请求。我将它们缩小到 dbarrett_dropzone.js 文件中的 xhr.send() 。为了阻止它们,我尝试了 template.rendered > dropzone options :

或覆盖 dropzone.accept :

但随后它会阻止填充队列数组,这是 CollectionFS 插入所必需的......

问题:我认为需要覆盖 dropzone.uploadFiles(files) 函数,所有 xhr 内容都在其中写入,......但是我所有的尝试都失败了,有人可以提出一个实现吗?

理想情况下,我认为这样的实现会是这样的:

0 投票
0 回答
287 浏览

javascript - 使用 Angular-Meteor 从 CollectionFS 获取文件

我对编程很陌生。我正在学习如何将 CollectionFS 与 Angular 一起使用,但无法从数据库中取回文件。这是我的代码:

html:

角度:

后端:

我真的不明白,如何从数据库中获取文件,它们也没有出现在路径文件夹中。

0 投票
1 回答
237 浏览

javascript - CollectionFS 从客户端获取 url

我正在开发我的第一个流星应用程序,并且刚刚使用 CollectionFS 和 gridfs 实现了上传图像。我可以使用成功查看我上传的图像,<img src="{{this.url}}">但我需要从 Meteor 的客户端访问它。我正在尝试使用集合中另一个文档中的字段,并根据元数据中的字段是否匹配来调用图像。(基本上使用空格键 registerHelper 连接两个文档)。我很犹豫是否将其他文档与图像一起嵌入,因为我担心空间要求。

我曾尝试浏览 Meteor-cfs-ui 包,但无法将其转换为我自己的空格键 registerHelper。查看 Meteor-CollectionFS 上的 UI Helpers 页面,我认为我的答案所在的链接断开了。

我可以查看我上传的所有图片,所以使用 {{this.url}} 不是问题。只是试图在客户端使用 FS.Collection 上的查询来获取集合中图像的 url,这让我很困扰。

这是我的代码:

客户端.html

客户端.js

如果有任何其他更简单的解决方案可以通过 html 将 CollectionFS 中的图片附加到另一个文档,我很想听听。我只是想学习。谢谢。

0 投票
1 回答
211 浏览

javascript - 将 CollectionFS 与流星一起使用时要“发布”什么

我正在尝试使用CollectionFS获得最简单的示例。所以我开始了一个新项目

现在我添加README.md中的所有代码。

common.js(创建)

所以在server.js(创建)

test.js(由流星创建的编辑)

test.html(由流星创建的编辑)

所以一切正常。我设置了一张图片,它被上传了,它神奇地出现了

然后我删除autopublish

我需要发布和订阅什么才能让它再次工作?

我尝试过的事情

server.js

test.js

没运气

0 投票
1 回答
362 浏览

meteor - 文件从 API 下载到 Meteor 服务器并上传到 S3

我正在从我的 Meteor 服务器发送请求以通过 API 下载文件。然后我想将该文件上传到 S3。我不断收到以下“NoSuchKey:指定的密钥不存在”。我最初认为这可能是我的 AcessKey/SecretKey 表单 AWS 的问题,但在谷歌搜索了一段时间后,我能找到的其他人收到此错误的唯一示例是尝试从 S3 下载文件时。

设置cfs:s3

从 API 开始文件传输并上传到 S3

注意:我收到以下错误,所以我添加了 Meteor.bindEnvironment。 “Meteor 代码必须始终在 Fiber 中运行。尝试使用 Meteor.bindEnvironment 包装传递给非 Meteor 库的回调。”

API 文档中的 Node.js 示例

0 投票
1 回答
246 浏览

image-processing - Meteor CollectionFS:S3 GraphicsMagick 不调整图像大小

我正在使用 Meteor-CollectionFS 和 GraphicsMagick 1.3.22 来调整上传到 Amazon S3 的图像的大小。图像不会调整大小,它只是以 S3 全尺寸显示。我还尝试将调整大小的图像放在单独的商店中,但图像在新商店中仍然显示为全尺寸。

这是我的服务器/collections.js

和我的客户/collections.js

和我的 FS.debug 日志

谢谢。

0 投票
1 回答
2520 浏览

meteor - 如何使用 FileSystem 和 CollectionFS 将文件保存在文件夹中?(是的,真的。)

我想我错过了一些东西。我已经阅读了很多帖子/示例,但我无法在我的系统上保存图像(我在本地工作)。

我的目标是什么?

我正在尝试将用户提交的文件保存在文件夹(服务器端)中。听起来容易吗?也许。

有什么问题?

简短回答:我不知道如何将文件保存在我的文件夹中。您想了解更多信息吗?

文件上传的故事

我已经读过要使用路径参数,例如new FS.Store.FileSystem("thumb", { path: "/public/images/user/avatar" }),我必须在服务器端声明我的集合。但是当我打电话时Avatars.insert()(头像是我收藏的名称),它似乎不存在。这是有道理的,因为这个集合只存在于服务器上。

因此,我尝试在服务器端和客户端声明集合(我已经阅读了一些关于此的示例)并且有效!该文件已正确添加到 MongoDB,但我的文件夹仍然是空的(我不确定,但我认为这是因为Avatars.insert()被称为客户端,所以使用的集合是客户端的集合,不能带path参数的集合)。

但没问题!我创建了 2 个 Meteor 方法(一个客户端和一个服务器端),称为“updateAvatarFile”。有了这个“技巧”,我就可以做到Meteor.call("updateAvatarFile", field.files[0]),它同时调用服务器端和客户端方法。所以我可以在客户端做一些 UI 的东西,然后在另一个上传文件。但我不能将文件作为参数传递。

field.files[0]包含文件客户端但服务器端它是一个空对象。我的问题是:如何上传文件?

我不能在客户端做(因为我不能使用path参数),但我可以将文件传递给服务器。我确定我错过了一些东西,但我不知道是什么。

这是我的方法:

我也尝试使用客户端方法插入文件,但结果相同(文件已添加到 MongoDB,但未保存到文件夹中)。

使用不同的path值也不起作用。


编辑:或者我正在尝试使用错误的包?在我看来,将图片转换为块并将它们保存到 MongoDB 听起来真的很奇怪而且很糟糕。你有什么建议吗?


编辑2: 回答米歇尔弗洛伊德(对不起,字符限制很烦人)。

首先,感谢您的回答!

1.目前,我只是在尝试 Meteor,所以我两者都有autopublishinsecure安装了。不发布/订阅我的收藏不会引起问题,对吗?

2.在您回答之前,我尝试通过将 my avatarCollection.jsin设置为服务器和客户端都可用的集合/collections。我在想不包含服务器客户端的路径自动可供双方使用。那么/collections和 和有什么不一样/lib?(我知道首先加载“lib”文件夹中的所有文件)。将集合放入其中是一种不好的做法/collections吗?也许我应该创建一个/lib/collections文件夹?

3.(最后一点,对不起,很长的评论)我已经尝试了你上面的建议,但它似乎不起作用(或者我做错了什么,再次><)。当我使用Avatars.insert()时,CollectionFS 不会将文件保存在我的本地存储中。我还检查了我的 HDD 的根目录,以防 CollectionFS 被解释/为我的机器的根目录,但事实并非如此。另一方面,CollectionFS 在 MongoDB 中创建了 4 个集合(、、和cfs._tempstore.chunkscfs.avatars.filerecord—— gridfs奇怪。我安装了 GridFS,但我使用 FileSystem -。这些表不是空的。这就是为什么我认为 CollectionFS 将我的文件分成块并将它们保存在 MongoDB 中。cfs_gridfs._tempstore.chunkscfs_gridfs._tempstore.files

0 投票
2 回答
750 浏览

meteor - Meteor:收集助手或 FS.Collection 上的转换?

使用 dburles:collection-helpers 包,您可以在任何 Mongo.collection 上添加集合助手。但我不能在 FS.Collection 上这样做。我得到TypeError: Object [object Object] has no method 'helpers'。变换功能也不起作用。

不能这样做吗?请注意,当从客户端插入照片时FS.Fileget userId,因此fileObj.uploadedBy = Meteor.users.find({_id: fileObj.uploader});

0 投票
0 回答
111 浏览

meteor - 流星js重新启动时正在删除上传的图像

我还是流星的新手。我正在创建一个 Meteor JS 项目,它的核心功能之一是图片上传,或者更像是特色图片上传。上传工作正常,点击提交后,它会显示在我的<div class="viewing">. 重新启动 Meteor 时会出现问题。图像将被删除,因此在我运行程序时没有显示图像。

这是我的代码:

的HTML:

JS:

请告诉我我在这里做错了什么。任何帮助都会很棒!几天来,我一直在寻找解决此问题的方法。

0 投票
1 回答
416 浏览

meteor - 从 cfs:gridfs 迁移到 cfs:s3

在我认为的一个流星项目中,有理由考虑从gridfs后端CollectionFS转移到s3.

我想做的一件事是迁移当前使用gridfs集合存储的图像/文件。

有没有人尝试过这个?我找不到任何指南甚至建议。

我现在的想法是这样的;

  1. 创建一个由 s3 支持的新集合
  2. 迭代旧集合,将数据推送到 s3
  3. 更新代码以指向新集合

这听起来不错?