0

我添加了三个包

cfs:standard-packages
cfs:filesystem
cfs:s3

错误 :

TypeError: Cannot read property 'keys' of undefined

s3.js

var avatarStoreLarge = new FS.Store.S3("temp", {
    region: "eu-west-1", //optional in most cases
    accessKeyId: "XXX", //required if environment variables are not set
    secretAccessKey: "XX", //required if environment variables are not set
    bucket: "temp", //required
    ACL:'public-read-write'
});
var filestore = new FS.Collection("temp", {
    stores: [avatarStoreLarge]
});

客户端.js

var avatarStoreLarge = new FS.Store.S3("temp")
var filestore = new FS.Collection("temp", {
    stores: [avatarStoreLarge]
})
filestore.allow({
    insert: function () {
        return true;
    },
    update: function () {
        return true;
    },
    remove: function () {
        return true;
    },
    download: function(){
        return true;
    }
});
filestore.deny({
 insert: function(){
   return false;
 },
 update: function(){
   return false;
 },
 remove: function(){
   return false;
 },
 download: function(){
   return false;
}    
 });

服务器js

        var fsFile = new FS.File(fileContent);
        fsFile.metadata = {owner: Meteor.user()._id};
        filestore.insert(fsFile});

这让我上传错误 TypeError: Cannot read property 'keys' of undefined

但如果我将服务器代码移动到 client.js,它会在 S3 上上传文件。从服务器代码上传 S3 有什么问题。

你能帮我解决这个错误吗?我们如何才能摆脱这个错误我的代码或配置有什么问题。

TypeError: Cannot read property 'keys' of undefined
4

2 回答 2

0

有没有可能是语法错误?

"在此行的末尾缺少:bucket: "temp, //required

于 2015-06-16T17:48:06.507 回答
0

您好尝试将您的许可“允许”规则放在服务器端 https://github.com/CollectionFS/Meteor-CollectionFS#storage-adapters

filestore.allow({
    insert: function () {
        return true;
    },
    update: function () {
        return true;
    },
    remove: function () {
        return true;
    },
    download: function(){
        return true;
    }
});

于 2015-11-13T04:17:17.840 回答