错误:FS.Store.S3 您必须指定“存储桶”选项(meteor.js 和 s3)
Error: FS.Store.S3 you must specify the "bucket" option (meteor.js and s3)
我正在按照这里的教程进行操作:http://experimentsinmeteor.com/photo-blog-part-1/
当我使用以下命令时,我可以让我的应用程序正常运行:
meteor --settings settings.json
但是当我只使用" meteor
"来启动我的本地服务器,或者当我将应用程序部署到我的生产环境(在 heroku 上)时,应用程序崩溃,我得到以下输出:
=> Started proxy.
=> Started MongoDB.
W20160227-10:30:11.721(-8)? (STDERR)
W20160227-10:30:11.722(-8)? (STDERR) /Users/*************/.meteor/packages/meteor-tool/.1.1.10.1b51q9m++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:245
W20160227-10:30:11.722(-8)? (STDERR) throw(ex);
W20160227-10:30:11.722(-8)? (STDERR) ^
W20160227-10:30:11.722(-8)? (STDERR) Error: FS.Store.S3 you must specify the "bucket" option
W20160227-10:30:11.723(-8)? (STDERR) at new FS.Store.S3 (packages/cfs_s3/packages/cfs_s3.js:95:1)
W20160227-10:30:11.723(-8)? (STDERR) at lib/collections/images.js:2:20
W20160227-10:30:11.723(-8)? (STDERR) at /Users/**************/www/myapp/.meteor/local/build/programs/server/app/lib/collections/images.js:58:4
W20160227-10:30:11.723(-8)? (STDERR) at /Users/**************/www/myapp/.meteor/local/build/programs/server/boot.js:242:10
W20160227-10:30:11.723(-8)? (STDERR) at Array.forEach (native)
W20160227-10:30:11.723(-8)? (STDERR) at Function._.each._.forEach (/Users/***************/.meteor/packages/meteor-tool/.1.1.10.1b51q9m++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/underscore/underscore.js:79:11)
W20160227-10:30:11.723(-8)? (STDERR) at /Users/*************/www/myapp/.meteor/local/build/programs/server/boot.js:137:5
=> Exited with code: 8
我的这部分应用程序的结构类似于教程中的完成方式:
我有一个只包含settings.json的.gitignore
我在根目录中有settings.json文件:
{
"AWSAccessKeyId" : "access key",
"AWSSecretAccessKey" : "secret",
"AWSBucket" : "bucket name"
}
然后我有一个库/集合/图像.js文件:
if (Meteor.isServer) {
var imageStore = new FS.Store.S3("images", {
/* OPTIONAL IN MOST CASES */
region: "us-west-1", // substitute the region you selected
/* REQUIRED */
accessKeyId: Meteor.settings.AWSAccessKeyId,
secretAccessKey: Meteor.settings.AWSSecretAccessKey,
bucket: Meteor.settings.AWSBucket
});
Images = new FS.Collection("Images", {
stores: [imageStore],
filter: {
allow: {
contentTypes: ['image/*']
}
}
});
}
// On the client just create a generic FS Store as don't have
// access (or want access) to S3 settings on client
if (Meteor.isClient) {
var imageStore = new FS.Store.S3("images");
Images = new FS.Collection("Images", {
stores: [imageStore],
filter: {
allow: {
contentTypes: ['image/*']
},
onInvalid: function(message) {
Bert.alert(message);
}
}
});
}
// Allow rules
Images.allow({
insert: function() { return true; },
update: function() { return true; }
});
我知道这有效,因为我能够在运行时存储图像:
meteor --settings settings.json
仅使用"流星"并在生产中弹出此错误(检查 heroku 日志并显示相同的内容)。
它抛出错误,因为您必须通过命令行或环境变量指定设置的位置。 有一篇关于流星厨师设置的很好的博客文章。 这里还有一个链接,指向如何设置 heroku 环境变量。 基本上,您使用heroku config:set
并指定变量。 我相信在这种情况下,它会是这样的:
heroku config:set METEOR_SETTINGS '"$(cat settings.json)'" -p 'Project Name'
相关文章:
- 存储JQuery中的选项值
- 如何在外部文件中存储谷歌地图选项
- 浏览器会话存储.在选项卡之间共享
- 对电子邮件(或用户名)进行哈希处理以存储在redis哈希桶中
- 存储值后,重复重新选择选择下拉菜单的第一个选项
- 如何使用复选框启用选项并通过本地存储进行保存
- S3 循环访问存储桶/文件夹/文件
- 如何使用 Node/Angular/JavaScript 将多个图像上传到 Amazon AWS S3 存储桶
- 错误:FS.Store.S3 您必须指定“存储桶”选项(meteor.js 和 s3)
- Simperium (JS) 从存储桶中删除对象
- 将数字分组到大小为 X 的最少数量的存储桶中
- 将用户选择的多个单选按钮选项存储在使用 ng-repeat(s)构建的角度 js 中
- 检查 s3 存储桶中是否存在单个对象
- 为select控件中的每个选项存储一个数组
- 直接向s3 / client上传文件.使用这种方法在s3存储桶中存储未使用的文件是否存在问题?
- 将javascript中不同选择的选项存储到数组中
- 将用户首选项存储在Cookie中
- 无法根据 S3 存储桶的创建日期创建排序数组
- 无法访问保存在 Javascript 代码中的存储桶中的图像
- 使用Autodesk's Forge OSS,我可以上传到存储桶,但下载的主体是空的