如何使用 SharePoint 重要迁移 API 导出视频脚本

视频文件的脚本(如 Teams 会议录制中的脚本)以类似于 zip 文件的格式存储。 如果要将视频从一个源迁移到另一个源,则必须使用新标志来确保将整个 zip 文件迁移到目标。 否则,你会无意中留下备用内容流,即脚本。

步骤 1:检查文件是否包含备用内容流

  1. 检查 SPFile 对象是否具有 属性 SPFile.HasAlternateContentStreams。 使用 REST 或 CSOM API 提取此属性值。
  2. 如果设置为 True,则文件包含备用内容流。

示例:


GET https://{site_url}/_api/web/GetFileByServerRelativeUrl(‘/serverrelativeurl’)/HasAlternateContentStreams

步骤 2:下载包含备用内容流的文件

如果文件请求包含 SPOpenBinaryOptions.GetAsZipWithAltStreamsIfAvailable,则可以下载包含主流和备用流的 zip 格式流。

  1. 使用 REST 或 CSOM API 下载 zip 格式的内容流。
  2. 必须包含 SPOpenBinaryOptions.GetAsZipWithAltStreamsIfAvailable。 如果未指定,则仅返回主文件内容流。

示例:


GET https://{site_url}/_api/web/GetFileByServerRelativeUrl(‘/serverrelativeurl’)/OpenBinaryStreamWithOptions(openOptions=1048576)

注意:在上面的示例中,“1048576”对应于 enum SPOpenBinaryOptions.GetAsZipWithAltStreamsIfAvailable 的整数值。

步骤 3:使用备用内容流导入文件

使用迁移 API 将具有备用内容流的文件的 zip 格式流导入 SPO。 所涉及的main步骤包括:

  1. 使用 SPOpenBinaryOptions.GetAsZipWithAltStreamsIfAvailable 作为主文件下载的 zip 格式流上传到 Azure 位置。
  2. 准备迁移清单.xml文件时,请将 属性 vti_hasAlternateContentStreams 添加到值为 TRUE 的 SPFile 对象。
  3. 像平常一样调用迁移 API。 在内部,SPO 将解压缩提供的内容流,并正确设置主文件流和关联的备用内容流。
  4. 导入后,验证属性 SPFile.HasAlternateContentStreams 以确认它是否设置为 True

示例:


<SPObject Url="Shared Documents/TestTMR.mp4" ObjectType="SPFile" Id="72b62f15-24be-4a8d-8023-ed7c4feae8c9"….>
<File Url="Shared Documents/TestTMR.mp4" ParentWebUrl="/" … Name="TestTMR.mp4">
<Properties>
<Property Name="vti_hasAlternateContentStreams" Value="TRUE" Access="ReadWrite" Type="Boolean"/>
</Properties>