Meteor亚马逊s3删除图片

时间:2017-08-16 22:59:53

标签: meteor amazon-s3 image-uploading

我已成功使用此流星包将图像上传到亚马逊s3 https://github.com/Lepozepo/S3现在我正在尝试删除该文件,我收到了错误。

这是s3.delete代码的文档

  

S3.delete(路径,回调)

     

此功能会永久销毁位于S3存储桶中的文件。

     

参数:

     

路径:必须采用此格式(" /folder/other_folder/file.extension")。   所以基本上总是从" /&#34开始;永远不会以" /"结束。这是   需要。

     

回调:在删除操作之后运行的函数   完成后返回Error作为第一个参数(如果有的话)   一个),结果作为第二个。

这是我的上传和删除代码

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

1 个答案:

答案 0 :(得分:2)

你应该这样称呼它:

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

第一个参数应该是url本身,而不是像你的例子中那样的对象。