Autodesk forge 使用jQuery删除Bucket中的对象

Autodesk forge 使用jQuery删除Bucket中的对象,autodesk-forge,Autodesk Forge,如何通过jQuery调用选择bucket中的对象。下面的代码显示了我上传文件的示例。目标是以类似的方式进行删除。谢谢 function uploadFile(node) { $('#hiddenUploadField').click(); $('#hiddenUploadField').change(function () { if (this.files.length == 0) return; var file = this.files[0]; switch (node.type

如何通过jQuery调用选择bucket中的对象。下面的代码显示了我上传文件的示例。目标是以类似的方式进行删除。谢谢

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

您可以在服务器端公开必要的部分(就像对/api/forge/oss/objects端点那样,该端点将文件上传到给定的bucket),然后可以从客户端以类似的方式调用该部分

服务器端

router.delete('/bucket/:id',函数(req,res){
var tokenSession=新令牌(请求会话)
变量id=请求参数id
var bucket=new forgeSDK.BucketsApi();
deleteBucket(id,tokenSession.getOAuth(),tokenSession.getCredentials())
.then(功能(数据){
res.json({status:“success”})
})
.catch(函数(错误){
res.status(error.statusCode).end(error.statusMessage);
})

})
啊,太好了,谢谢你。您将如何在服务器端用C#解决这个问题?Rigth现在服务器端的上载看起来像:

[HttpPost]
[Route("api/forge/oss/objects")]
public async Task<dynamic> UploadObject()
{
  // basic input validation
  HttpRequest req = HttpContext.Current.Request;
  if (string.IsNullOrWhiteSpace(req.Params["bucketKey"]))
    throw new System.Exception("BucketKey parameter was not provided.");

  if (req.Files.Count != 1)
    throw new System.Exception("Missing file to upload");

  string bucketKey = req.Params["bucketKey"];
  HttpPostedFile file = req.Files[0];

  // save the file on the server
  var fileSavePath = Path.Combine(HttpContext.Current.Server.MapPath("~/App_Data"), 
  file.FileName);
  file.SaveAs(fileSavePath);

  // get the bucket...
  dynamic oauth = await OAuthController.GetInternalAsync();
  ObjectsApi objects = new ObjectsApi();
  objects.Configuration.AccessToken = oauth.access_token;

  // upload the file/object, which will create a new object
  dynamic uploadedObj;
  using (StreamReader streamReader = new StreamReader(fileSavePath))
  {
    uploadedObj = await objects.UploadObjectAsync(bucketKey,file.FileName, 
  (int)streamReader.BaseStream.Length, streamReader.BaseStream,"application/octet- 
   stream");
  }

  // cleanup
  File.Delete(fileSavePath);

  return uploadedObj;
}
[HttpPost]
[路由(“api/forge/oss/objects”)]
公共异步任务上载对象()
{
//基本输入验证
HttpRequest req=HttpContext.Current.Request;
if(string.IsNullOrWhiteSpace(req.Params[“bucketKey”]))
抛出新的System.Exception(“未提供BucketKey参数”);
如果(req.Files.Count!=1)
抛出新System.Exception(“缺少要上载的文件”);
字符串bucketKey=req.Params[“bucketKey”];
HttpPostedFile file=req.Files[0];
//将文件保存到服务器上
var fileSavePath=Path.Combine(HttpContext.Current.Server.MapPath(“~/App\u Data”),
文件名);
file.SaveAs(fileSavePath);
//拿桶来。。。
dynamic oauth=等待OAuthController.GetInternalAsync();
ObjectsApi objects=新的ObjectsApi();
objects.Configuration.AccessToken=oauth.access\u令牌;
//上载文件/对象,这将创建一个新对象
动态上传;
使用(StreamReader StreamReader=newstreamreader(fileSavePath))
{
uploadedObj=await objects.UploadObjectAsync(bucketKey,file.FileName,
(int)streamReader.BaseStream.Length,streamReader.BaseStream,“应用程序/八位字节-
);;
}
//清理
Delete(fileSavePath);
返回上载的对象;
}

看看这个示例,它应该包含所有必要的代码: