Sharepoint 2013使用Rest \ Jsom从资产库中获取视频文件的URL

时间:2014-07-25 22:33:03

标签: sharepoint

有没有办法可以使用JSOM或REST获取上传到SharePoint2013资产库的视频文件的URL?

我尝试查看资产库“视频”内容类型,并且我找到了存储上传视频文件网址的任何网站列。

谢谢,

1 个答案:

答案 0 :(得分:5)

首先,为了从SharePoint 2013中的资产库中检索视频,了解视频的组织方式非常重要。

视频如何组织?

根据Enhanced Video Experience in SharePoint 2013

  

视频的组织方式类似于文档集,即文档集   可以在一个步骤中创建的相关文档组   作为一个实体管理。要了解有关文档集的更多信息,请参阅   Introduction to document sets。 SharePoint创建一个存根(想想   它作为文件夹)来保存视频和所有相关内容,例如   作为用户定义的属性,缩略图,视频再现等   与视频相关的文件。上传视频文件时   SharePoint会自动为该视频创建此存根。您可以   想象一下视频集是与之相关的所有内容的封装   那个视频。

假设必须将Wildlife_512kb.mp4文件上传到资产库。

然后,在将文件上载到Assets库之后,将生成以下具有内容的文件夹结构 enter image description here

实际的视频文件将存储在:

<ListUrl>/<VideoSet>/<FileName>

其中VideoSet(文件夹容器)名称将设置为没有扩展名的文件名。

实施例

如何通过JSOM

检索Assets库中的视频文件Url
function getAssetFileUrl(listTitle,videoFileName,success,error) {

  var context = SP.ClientContext.get_current();
  var list = context.get_web().get_lists().getByTitle(listTitle);   
  context.load(list,'RootFolder');

  context.executeQueryAsync(
   function(){
      var videoSetName = videoFileName.substring(0,videoFileName.lastIndexOf(".")); 
      var videoFileUrl = list.get_rootFolder().get_serverRelativeUrl() + "/" + videoSetName + "/" + videoFileName;
      success(videoFileUrl);
   }, 
   error
);

}

用法

var listTitle = 'Assets';
var videoFileName = 'Wildlife_512kb.mp4';
getAssetFileUrl(listTitle,videoFileName,
   function(fileUrl) {
      console.log(fileUrl);   
   },
   function(sender,args){
      console.log(args.get_message());    
   });

参考

Enhanced Video Experience in SharePoint 2013