我花了很多时间阅读如何使用客户端对象模型,并且仍然远离任何形式的能力,因此我需要提出......
我们必须每天将数千个报告文件上传到sharepoint网站。 这些文件往往是大约1500个像大小不同的文件块,从30kb到450kb不等。
对于较大的(450kb)文件,我编写了一个VB应用程序,并尝试使用Savebinarydirect方法(1)和files.add方法和executequery(2)。在运行executequery之前,我曾尝试将文件阻塞到大约100个组中,但这对整体性能影响不大,而savebinarydirect方法的速度提高了大约三分之一。
但是,这些方法都不比手动使用Sharepoint Designer工具和从Source拖放到Destination。与使用方法1的30-40分钟相比,上传1500个较大文件大约需要20分钟
我的问题是:我错过了什么 - 是否有第三个更快,更好的集成选项。
非常感谢所有的帮助。
代码摘要
方法1
SP.File.SaveBinaryDirect(context, serverRelativeUrl + "/" + filename, stream, True)
方法2
Dim fileCreationInfo As SP.FileCreationInformation = New SP.FileCreationInformation()
fileCreationInfo.ContentStream = stream
fileCreationInfo.Overwrite = True
fileCreationInfo.Url = filename
fileCreationInfo.Overwrite = True
Dim folder As SP.Folder = context.Web.GetFolderByServerRelativeUrl(serverRelativeUrl)
Dim files As SP.FileCollection = folder.Files
Dim file As SP.File = files.Add(fileCreationInfo)
context.Load(files)
context.Load(file)
upload file
context.ExecuteQuery()
答案 0 :(得分:0)
SharePoint Designer使用FrontPage RPC(远程过程调用)上载文件。您可以通过使用Fiddler轻松确认。本文包含有关上传选项和优秀示例的更多信息:http://sharepointfieldnotes.blogspot.com/2009/09/uploading-content-into-sharepoint-let.html。