2017-08-16 2 views
0

J'ai réussi à télécharger une image sur Amazon S3 avec ce paquet de météores https://github.com/Lepozepo/S3 Maintenant, j'essaie de supprimer le fichier, sur lequel je reçois une erreur.Meteor Amazon s3 supprimer l'image

Ceci est la documentation du code s3.delete

S3.delete (chemin, rappel)

Cette fonction détruit définitivement un fichier situé dans votre seau S3.

Paramètres:

chemin

: Doit être dans ce format ("/folder/other_folder/file.extension"). Donc, fondamentalement toujours commencer par "/" et ne jamais se terminer par "/". Ceci est requis. Callback: Une fonction exécutée après l'opération de suppression est terminée et renvoie une erreur en tant que premier paramètre (s'il y a un) et un résultat en tant que second.

Ceci est mon téléchargement et supprimer le code

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); 
    }); 


    } 
}); 

L'erreur que je reçois quand appuyer sur le bouton de suppression.

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 

Mise à jour Ceci est l'erreur que je suis arrivé sur le serveur côté terminal

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

Pourriez-vous insérer 'console.log (delete_url);' après le téléchargement et avant la suppression? – Styx

+0

Oui je peux et il me donne le chemin '/ uploads/image-name.jpg' juste comme la documentation le demande. –

Répondre

2

Vous devriez l'appeler comme ceci:

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

Le premier paramètre doit être url lui-même , pas l'objet comme dans votre exemple.