我尝试对用户上传的图片执行删除调用,用户也应该能够删除他们的文件。所以我在我的android代码中创建了一个调用云函数的按钮:
Parse.Cloud.define("deleteFile1", function(request, response) {
var fileName = request.params.image1;
if (!fileName) {
response.error("Filename is not defined");
} else {
Parse.Cloud.httpRequest({
method: 'DELETE',
url: 'https://api.parse.com/1/files/' + fileName,
headers: {
'X-Parse-Application-Id': '***',
'X-Parse-Master-Key': '***'
},
success: function(httpResponse) {
response.success(httpResponse.text);
},
error: function(httpResponse) {
response.error("Request failed: " + httpResponse.text);
}
});
}
});
现在这显然不会起作用,我需要先删除与之相关的对象。至少我是如何理解删除过程的。 如果是这样,我如何先执行,删除文件的对象,然后删除文件本身?
我可以运行object.remove(" objectThatHoldsFile");并执行saveCallBack。执行保存后,我可以运行云功能来删除文件吗?或者必须按顺序在同一个云功能中处理这两个部分?
提前致谢!
答案 0 :(得分:1)
Parse.Cloud.useMasterKey();
var query = new Parse.Query("myClazz");
query.get("xWMyZ4YEGZ").then(function(myClazz) {
_class = myClazz;
return _class.destroy()
}
).then(function(fileName) {
Parse.Cloud.httpRequest({
method: 'DELETE',
url: 'https://api.parse.com/1/files/' + fileName,
headers: {
'X-Parse-Application-Id': '***',
'X-Parse-Master-Key': '***'
} } ) } )
.then(function(success) {
// The related objClazz and file were deleted
}, function(error) {
console.error("Error deleting related comments " + error.code + ": " + error.message);
});