有没有办法可以使用JSOM或REST获取上传到SharePoint2013资产库的视频文件的URL?
我尝试查看资产库“视频”内容类型,并且我找到了存储上传视频文件网址的任何网站列。
谢谢,
答案 0 :(得分:5)
首先,为了从SharePoint 2013中的资产库中检索视频,了解视频的组织方式非常重要。
根据Enhanced Video Experience in SharePoint 2013:
视频的组织方式类似于文档集,即文档集 可以在一个步骤中创建的相关文档组 作为一个实体管理。要了解有关文档集的更多信息,请参阅 Introduction to document sets。 SharePoint创建一个存根(想想 它作为文件夹)来保存视频和所有相关内容,例如 作为用户定义的属性,缩略图,视频再现等 与视频相关的文件。上传视频文件时 SharePoint会自动为该视频创建此存根。您可以 想象一下视频集是与之相关的所有内容的封装 那个视频。
假设必须将Wildlife_512kb.mp4
文件上传到资产库。
然后,在将文件上载到Assets库之后,将生成以下具有内容的文件夹结构
实际的视频文件将存储在:
下<ListUrl>/<VideoSet>/<FileName>
其中VideoSet
(文件夹容器)名称将设置为没有扩展名的文件名。
如何通过JSOM
检索Assets库中的视频文件Urlfunction 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());
});