如何通过jQuery-Call选择存储桶中的对象。以下代码显示了我上传文件的示例。目的是以类似的方式进行删除。谢谢
function uploadFile(node) {
$('#hiddenUploadField').click();
$('#hiddenUploadField').change(function () {
if (this.files.length == 0) return;
var file = this.files[0];
switch (node.type) {
case 'bucket':
var formData = new FormData();
formData.append('fileToUpload', file);
formData.append('bucketKey', node.id);
$.ajax({
url: '/api/forge/oss/objects',
data: formData,
processData: false,
contentType: false,
type: 'POST',
success: function (data) {
$('#appBuckets').jstree(true).refresh_node(node);
}
});
break;
}
});
}
答案 0 :(得分:1)
您可以在服务器端公开必要的部分(就像在 / api / forge / oss / objects 端点上所做的那样,将文件上传到给定存储桶),然后以类似的方式从客户端调用。
服务器端:
router.delete('/buckets/:id', function (req, res) {
var tokenSession = new token(req.session)
var id = req.params.id
var buckets = new forgeSDK.BucketsApi();
buckets.deleteBucket(id, tokenSession.getOAuth(), tokenSession.getCredentials())
.then(function (data) {
res.json({ status: "success" })
})
.catch(function (error) {
res.status(error.statusCode).end(error.statusMessage);
})
})
客户端:
function deleteBucket(id) {
console.log("Delete bucket = " + id);
$.ajax({
url: '/dm/buckets/' + encodeURIComponent(id),
type: 'DELETE'
}).done(function (data) {
console.log(data);
if (data.status === 'success') {
$('#forgeFiles').jstree(true).refresh()
showProgress("Bucket deleted", "success")
}
}).fail(function(err) {
console.log('DELETE /dm/buckets/ call failed\n' + err.statusText);
});
}
看看这个实现了文件上传和存储桶删除的示例:https://github.com/adamenagy/oss.manager-nodejs
答案 1 :(得分:0)
很好,谢谢。以及如何使用C#在服务器端解决它?现在,Rigth在服务器端的上传看起来像:
yield takeEvely(OTHER_STUFF_ACTION, doOtherStuff);