2017-08-16 188 views
0

我已成功上传一个图像到亚马逊s3与这个流星包 https://github.com/Lepozepo/S3现在我想删除文件,我得到一个错误。流星亚马逊s3删除图像

这是s3.delete代码

S3.delete(路径,回调)

此功能会永久破坏位于您的S3存储桶文件的文档。

参数:

路径:必须是这种格式( “/folder/other_folder/file.extension”)。 所以基本上总是以“/”开头,并且永远以“/”结尾。这是需要的 。

回调函数:在删除操作 完成后运行的函数返回一个错误作为第一个参数(如果存在 ),并且结果作为第二个参数。

这是我上传和删除代码

Template.postSubmit.events({ 
    "click button.upload": function(){ 
     var files = $("input.file_bag")[0].files 

     S3.upload({ 
       files:files, 
       path:"uploads" 
      },function(e,r){ 
       console.log(r); 

     delete_url = r.relative_url; 

     console.log(delete_url); 
     }); 
    }, 
    "click button.delete": function(){ 

    S3.delete({ 
     path:delete_url 
     },function(e,r){ 
     console.log(e); 
     console.log(r); 
    }); 


    } 
}); 

击中删除按钮,当我得到的错误。

errorClass {isClientSafe: true, error: 400, reason: "Match failed", details: undefined, message: "Match failed [400]", …} 
details 
: 
undefined 
error 
: 
400 
errorType 
: 
"Meteor.Error" 
isClientSafe 
: 
true 
message 
: 
"Match failed [400]" 
reason 
: 
"Match failed" 
stack 
: 
"Error↵ at Connection._livedata_result (http://localhost:3000/packages/ddp-client.js?hash=14d966b7972bd95a1f7015fec9ac340f10508a44:4823:23)↵ at onMessage (http://localhost:3000/packages/ddp-client.js?hash=14d966b7972bd95a1f7015fec9ac340f10508a44:3528:206)↵ at http://localhost:3000/packages/ddp-client.js?hash=14d966b7972bd95a1f7015fec9ac340f10508a44:2908:9↵ at Array.forEach (<anonymous>)↵ at Function._.each._.forEach (http://localhost:3000/packages/underscore.js?hash=cde485f60699ff9aced3305f70189e39c665183c:149:11)↵ at SockJS.self.socket.onmessage (http://localhost:3000/packages/ddp-client.js?hash=14d966b7972bd95a1f7015fec9ac340f10508a44:2907:43)↵ at SockJS.REventTarget.dispatchEvent (http://localhost:3000/packages/ddp-client.js?hash=14d966b7972bd95a1f7015fec9ac340f10508a44:142:28)↵ at SockJS._dispatchMessage (http://localhost:3000/packages/ddp-client.js?hash=14d966b7972bd95a1f7015fec9ac340f10508a44:1309:14)↵ at SockJS._didMessage (http://localhost:3000/packages/ddp-client.js?hash=14d966b7972bd95a1f7015fec9ac340f10508a44:1375:26)↵ at WebSocket.that.ws.onmessage (http://localhost:3000/packages/ddp-client.js?hash=14d966b7972bd95a1f7015fec9ac340f10508a44:1531:21)" 
__proto__ 
: 
Error 

更新 这是我在终端侧

Exception while invoking method '_s3_delete' Error: Match error: Expected string, got object 
+0

您可以在上传之前和删除之前插入'console.log(delete_url);'? – Styx

+0

是的,我可以,并且正如文档所要求的那样,它给了我路径'/ uploads/image-name.jpg'。 –

回答

2

在服务器上得到了错误,你应该调用它像这样:

S3.delete(delete_url, function() { ... }); 

第一个参数是URL本身,而不是你的例子中的对象。