我有一个图像作为一个类中的列。我需要通过查询该行来删除特定行的图像。但在查询如何删除该图像后
我可以通过以下方式获取图片网址:
var image = results[i].get("imageFile").url();
我们可以通过获取网址来删除图片,还是有其他方式?
答案 0 :(得分:5)
目前仅支持通过REST API删除文件。您可以尝试使用Parse.Cloud.httpRequest发出删除文件命令。
您可以尝试这样做:
var image = result.get("imageFile").url();
Parse.Cloud.httpRequest({
method: 'DELETE',
url: image.substring(image.lastIndexOf("/")+1),
headers: {
"X-Parse-Application-Id": "YOUR_APP_ID
"X-Parse-REST-API-Key" : YOUR_API_KEY"
}
);
但请不要忘记获取yourURL =只是文件的名称。
这就是你需要做的原因
image.substring(image.lastIndexOf("/")+1),
例如,你的URL不应该是http://files.parsetfss.com/19728287-9868-4728-8e49-31472daf0211/tfss-65ff02e3-3d11-45a8-ba25-4955f6c7f677-143569529.jpg
但是tfss-65ff02e3-3d10-45a8-ba25-4955f6c7f677-1435695290.jpg
答案 1 :(得分:0)
几年后,我偶然遇到了这个问题,因为此SO页是与ParseServer-> S3-Adapter github存储库上的已解决问题链接的。
上面和文档中的信息有些混乱。文档中写的是该URL必须为:
https://YOUR.PARSE-SERVER.HERE/parse/files/...profile.png
这是正确的,但仅在某种意义上说,您需要提供Parse Server的路径,“文件”目录以及文件名本身。如果您在同一台Parse Server上运行多个应用程序(就像我这样),这会有些棘手。
鉴于此建议已不再在Parse自己的服务器上运行,上述建议-并被标记为正确-错误或不再准确(四年后)。
仅传递文件名将不起作用。您需要输入有效的网址-例如
http://localhost:8000/APP-NAME/files/FILE-NAME
与文档不同,您不需要/parse/
。代替/parse/
的是应用程序的名称。
最适合我的是:
// note: endpoint is defined outside of this function
// the endpoint is the app/server url - e.g.
// http://localhost:8000/some_parse_app_name
Parse.Cloud.define('deleteFile', (request) => {
let encodedFileName = encodeURI(request.params.fileName)
Parse.Cloud.httpRequest({
headers: {
'X-Parse-Application-Id': appId,
'X-Parse-Master-Key': masterKey
},
method: 'DELETE',
url: `${endpoint}/files/${encodedFileName}`,
}).then(function (httpResponse) {
// success
console.log('Request succeeded: ' + httpResponse.text)
}, function (httpResponse) {
// error
console.error('Request failed with response code ' + httpResponse.status)
})
})
答案 2 :(得分:0)
在解析时删除文件有两个选项。 1.云代码 2. Rest API
作为替代,您可以删除没有云代码的文件。只是使用JavaScript XMLHttpRequest调用api
const remove = async function(URL) {
const httpRequest = await fetch(URL, {
method: 'DELETE',
headers: {
'X-Parse-Application-Id': appId,
'X-Parse-REST-API-Key': resKey,
'X-Parse-Master-Key': masterKey
}
});
const response = await httpRequest;
return response
}