在 Cloud Function 中执行多次删除
Performing multiple deletes in Cloud Function
我正在尝试对用户上传的图片执行删除调用,用户也应该能够删除他们的文件。所以我在 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。保存完成后,可以运行云删除文件功能吗?还是必须按顺序在同一个云函数中处理这两个部分?
提前致谢!
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);
});
我正在尝试对用户上传的图片执行删除调用,用户也应该能够删除他们的文件。所以我在 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。保存完成后,可以运行云删除文件功能吗?还是必须按顺序在同一个云函数中处理这两个部分?
提前致谢!
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);
});