结合使用 Office 365 内容分发网络和 SharePoint Online

可以使用内置的 Office 365 内容分发网络 (CDN) 来托管静态资产,以便提高 SharePoint Online 页面的性能。 Office 365 CDN 将静态资产缓存到距离请求这些资产的浏览器更近的位置,这样可以加快下载速度并减少延迟,进而提高性能。 此外,Office 365 CDN使用 HTTP/2 协议改进压缩和 HTTP 管道。 Office 365 CDN 服务被归入 SharePoint Online 订阅。

备注

Office 365 CDN仅适用于全球 生产 () 云中的租户。 美国政府、中国和德国云中的租户目前不支持Office 365 CDN。

Office 365 CDN 由多个 CDN 组成,用户可以在多个位置(即 )托管静态资产,并从全局高速网络提供这些资产。 可以添加 公共 源、私有 源或同时添加这两种源,具体取决于想要托管在 Office 365 CDN 中的内容种类。 有关公共和专用来源之间的差异的详细信息,请参阅 “选择每个源是公共的还是专用 的”。

Office 365 CDN概念图。

如果已熟悉 CDN 的工作方式,只需完成几个步骤即可为租户启用Office 365 CDN。 本主题介绍如何操作。 有关如何开始托管静态资产的信息,请继续阅读。

提示

还有其他 Microsoft 托管的 CDN 可用于专用使用方案的Office 365,但本主题中未讨论这些 CDN,因为它们不在Office 365 CDN范围内。 有关详细信息,请参阅 其他 Microsoft CDN

返回到 网络规划和性能优化Office 365

在 SharePoint Online 中使用Office 365 CDN概述

若要为组织设置Office 365 CDN,请执行以下基本步骤:

完成设置后,可以通过以下方法管理Office 365 CDN

  • 添加、更新和删除资产
  • 添加和删除源
  • 配置CDN策略
  • 如有必要,禁用CDN

最后,请参阅使用CDN资产了解如何从公共和专用来源访问CDN资产。

有关解决常见问题的指导,请参阅Office 365 CDN疑难解答

规划Office 365 CDN的部署

在为Office 365租户部署Office 365 CDN之前,应在规划过程中考虑以下因素。

确定要托管在CDN上的静态资产

一般而言,CDN 对于托管 静态资产 或不经常更改的资产最为有效。 一个很好的经验法则是标识满足某些或所有这些条件的文件:

  • 嵌入在页面 (中的静态文件,例如脚本和图像) 可能对页面加载时间产生显著增量影响
  • 可执行文件和安装文件等大型文件
  • 支持客户端代码的资源库

例如,重复请求的小文件(如网站映像和脚本)可以显著提高网站呈现性能,并在将网站添加到CDN源时增量减少SharePoint Online 网站上的负载。 可以从CDN下载更大的文件(如安装可执行文件),从而对SharePoint Online 网站上的负载产生积极性能影响和后续降低负载,即使这些文件不是经常访问的。

基于每个文件的性能改进取决于许多因素,包括客户端靠近最近的CDN终结点、本地网络上的暂时性条件等。 许多静态文件非常小,可以在不到一秒的时间内从Office 365下载。 但是,网页可能包含许多嵌入文件,累积下载时间为几秒钟。 从CDN提供这些文件可以显著减少页面总加载时间。 有关示例,请参阅CDN提供哪些性能提升?

确定要存储资产的位置

CDN从名为 的位置提取资产。 源可以是可通过 URL 访问的SharePoint网站、文档库或文件夹。 在为组织指定源时,你具有极大的灵活性。 例如,可以指定多个源或单个源,以便将所有CDN资产放入其中。 可以选择拥有组织的公共或专用来源。 大多数组织会选择实现这两者的组合。

可以为源创建新容器,例如文件夹或文档库,并添加要从CDN提供的文件。 如果有一组要从CDN中获取的特定资产,并且想要将CDN资产集限制为仅容器中的这些文件,则这是一个很好的方法。

还可以将现有网站集、网站、库或文件夹配置为源,使容器中的所有符合条件的资产都可从CDN获取。 在将现有容器添加为源之前,请务必确保了解其内容和权限,以免无意中向匿名访问或未经授权的用户公开资产。

可以定义 CDN策略 以从CDN中排除源中的内容。 CDN策略按 文件类型站点分类 等属性排除公共或专用来源中的资产,并应用于在策略中指定的 CdnType (专用或公共) 的所有来源。 例如,如果添加由包含多个子网站的网站组成的专用源,则可以定义一个策略来排除标记为 “机密”的网站,以便不会从 CDN应用了该分类的站点中提供内容, 该策略将适用于已添加到CDN 的所有 专用源的内容。

请记住,源数越多,对CDN服务处理请求所需的时间的影响就越大。 建议尽量限制源数。

选择每个源是公共的还是私有的

标识源时,请指定是 应将其公开 还是 专用。 对公共源中CDN资产的访问是匿名的,CDN专用源中的内容由动态生成的令牌进行保护,以增强安全性。 无论选择哪种选项,Microsoft 在管理CDN本身时都会为你带来沉重的负担。 此外,在设置CDN并确定源后,可以稍后更改主意。

公共和专用选项都提供类似的性能提升,但每个选项都有独特的属性和优势。

可以匿名访问Office 365 CDN中的 公共 来源,任何拥有资产 URL 的人都可访问托管资产。 由于对公共源中内容的访问属于匿名访问,因此只能使用它们缓存非敏感的常规内容,如 JavaScript 文件、脚本、图标和图片。

Office 365 CDN中的 专用 源提供对用户内容(例如SharePoint联机文档库、网站和专有映像)的专用访问权限。 对专用源中内容的访问受动态生成的令牌保护,因此只能由具有原始文档库或存储位置权限的用户访问。 Office 365 CDN中的专用源只能用于 SharePoint Online 内容,并且只能通过从 SharePoint Online 租户重定向来访问专用源中的资产。

可以阅读有关CDN访问专用来源中的资产的工作原理的详细信息,以使用专用来源中的资产

在公共源中托管资产的属性和优势

  • 每个人都能匿名访问公用源中公开的资产。

    重要

    不应将包含用户信息或被视为对组织敏感的资源置于公共来源。

  • 如果从公用源中删除某资产,缓存会继续保留此资产最多 30 天;但此 CDN 资产的链接会在 15 分钟内失效。

  • 如果将样式表(CSS 文件)托管到公用源,可以在代码内使用相对路径和 URI。 也就是说,可以引用背景图像和其他对象相对于调用它的资产的位置。

  • 虽然可以构造公共源的 URL,但应谨慎行事,确保利用页面上下文属性并遵循执行此操作的指导。 这是因为,如果无法访问 CDN,URL 就不会在 SharePoint Online 中自动解析为相应组织,进而可能会导致链接失效和其他错误抛出。 URL 也可能会发生更改,因此不应只对其当前值进行硬编码。

  • 公共源包含的默认文件类型为 .css、.eot、.gif、.ico、.jpeg、.jpg、.js、.map、.png、.svg、.ttf、.woff 和 .woff2。 可以指定其他文件类型。

  • 可以配置策略以排除已由指定的站点分类标识的资产。 例如,可以选择排除所有标记为“机密”或“受限”的资产,即使它们的文件类型受支持且位于公用源中,也不例外。

在专用来源托管资产的属性和优势

  • 专用来源只能用于SharePoint联机资产。

  • 用户只有在有权访问容器时才能从专用来源访问资产。 禁止匿名访问这些资产。

  • 专用来源的资产必须从 SharePoint Online 租户转介。 直接访问专用CDN资产不起作用。

  • 如果从专用来源中删除资产,资产可能继续从缓存中可用长达一小时;但是,我们将在资产删除后 15 分钟内使CDN中的资产链接失效。

  • 默认情况下,支持为专用源添加下列类型的文件:.gif、.ico、.jpeg、.jpg、.js 和 .png。 可以指定其他文件类型。

  • 与公共源一样,可以配置策略以排除已由网站分类标识的资产,即使使用通配符包含文件夹或文档库中的所有资产,也可指定这些资产。

有关为何使用Office 365 CDN、常规CDN概念以及其他可与Office 365租户配合使用的 Microsoft CDN 的详细信息,请参阅内容分发网络

默认CDN源

除非另有指定,否则Office 365在启用Office 365 CDN时为你设置一些默认来源。 如果最初选择不预配它们,则可以在完成设置后添加这些源。 除非你了解跳过默认源设置的后果,并且有执行此操作的具体原因,否则应允许在启用CDN时创建它们。

默认专用CDN源:

  • */userphoto.aspx
  • */siteassets

默认公共CDN源:

  • */masterpage
  • */style 库
  • */clientsideassets

备注

clientsideassets 是 2017 年 12 月添加到 Office 365 CDN 服务的默认公共源。 必须提供此源才能SharePoint 框架CDN中的解决方案。 如果在 2017 年 12 月之前启用了Office 365 CDN,或者在启用CDN时跳过了默认源的设置,则可以手动添加此源。 有关详细信息,请参阅“我的客户端 Web 部件或SharePoint 框架解决方案不起作用

使用 SharePoint Online Management Shell 设置和配置Office 365 CDN

本部分中的过程要求使用 SharePoint Online Management Shell 连接到 SharePoint Online。 有关说明,请参阅Connect to SharePoint Online PowerShell

完成以下步骤,以使用 SharePoint Online Management Shell 设置和配置CDN以在 SharePoint Online 中托管资产。

单击展开

使组织能够使用Office 365 CDN

在更改租户CDN设置之前,应检索Office 365租户中专用CDN配置的当前状态。 使用 SharePoint Online Management Shell 向租户连接:

Connect-SPOService -Url https://contoso-admin.sharepoint.com

现在,使用 Get-SPOTenantCdnEnabled cmdlet 从租户中检索CDN状态设置:

Get-SPOTenantCdnEnabled -CdnType <Public | Private>

指定 CdnType 的CDN状态将输出到屏幕。

使用 Set-SPOTenantCdnEnabled cmdlet 使组织能够使用Office 365 CDN。 可以让组织同时使用公共来源、专用来源或两者。 还可以将CDN配置为在启用默认源时跳过默认源的设置。 你以后始终可以按照本主题中所述添加这些源。

在SharePoint联机Windows PowerShell中:

Set-SPOTenantCdnEnabled -CdnType <Public | Private | Both> -Enable $true

例如,若要使组织能够同时使用公共和专用来源,请键入以下命令:

Set-SPOTenantCdnEnabled -CdnType Both -Enable $true

若要使组织能够同时使用公共和专用源,但跳过设置默认源,请键入以下命令:

Set-SPOTenantCdnEnabled -CdnType Both -Enable $true -NoDefaultOrigins

有关启用Office 365 CDN时默认预配的源以及跳过默认源设置的潜在影响,请参阅默认CDN源。

若要使组织能够使用公共源,请键入以下命令:

Set-SPOTenantCdnEnabled -CdnType Public -Enable $true

若要使组织能够使用专用源,请键入以下命令:

Set-SPOTenantCdnEnabled -CdnType Private -Enable $true

有关此 cmdlet 的详细信息,请参阅 Set-SPOTenantCdnEnabled

更改要包含在Office 365 CDN (可选) 中的文件类型的列表

提示

使用 Set-SPOTenantCdnPolicy cmdlet 定义文件类型时,将覆盖当前定义的列表。 如果要将其他文件类型添加到列表中,请先使用该 cmdlet 来找出已允许的文件类型,并将其与新文件类型一起包含在列表中。

使用 Set-SPOTenantCdnPolicy cmdlet 定义可由CDN中的公共和专用源托管的静态文件类型。 默认情况下,允许使用常见的资产类型,例如 .css、.gif、.jpg 和.js。

在SharePoint联机Windows PowerShell中:

Set-SPOTenantCdnPolicy -CdnType <Public | Private> -PolicyType IncludeFileExtensions -PolicyValue "<Comma-separated list of file types >"

例如,若要使CDN托管 .css 和 .png 文件,请输入命令:

Set-SPOTenantCdnPolicy -CdnType Private -PolicyType IncludeFileExtensions -PolicyValue "CSS,PNG"

若要查看CDN当前允许的文件类型,请使用 Get-SPOTenantCdnPolicies cmdlet:

Get-SPOTenantCdnPolicies -CdnType <Public | Private>

有关这些 cmdlet 的详细信息,请参阅 Set-SPOTenantCdnPolicyGet-SPOTenantCdnPolicies

更改要从Office 365 CDN (可选) 中排除的站点分类列表

提示

使用 Set-SPOTenantCdnPolicy cmdlet 排除站点分类时,将覆盖当前定义的列表。 如果想要排除其他站点分类,请先使用 cmdlet 找出已排除的分类,然后将它们与新分类一起添加。

运行 Set-SPOTenantCdnPolicy cmdlet 可以排除不想通过 CDN 提供的网站分类。 默认情况下,不排除任何网站分类。

在SharePoint联机Windows PowerShell中:

Set-SPOTenantCdnPolicy -CdnType <Public | Private> -PolicyType ExcludeRestrictedSiteClassifications  -PolicyValue "<Comma-separated list of site classifications >"

若要查看当前限制的网站分类,请使用 Get-SPOTenantCdnPolicies cmdlet:

Get-SPOTenantCdnPolicies -CdnType <Public | Private>

将返回的属性为 IncludeFileExtensionsExcludeRestrictedSiteClassificationsExcludeIfNoScriptDisabled

IncludeFileExtensions 属性包含将从CDN提供的文件扩展名列表。

备注

默认文件扩展名在公共扩展名和专用文件扩展名之间有所不同。

ExcludeRestrictedSiteClassifications 属性包含要从CDN中排除的站点分类。 例如,可以排除标记为 “机密”的网站,以便不会从CDN中提供应用该分类的网站中的内容。

ExcludeIfNoScriptDisabled 属性基于站点级别 的 NoScript 属性设置从CDN中排除内容。 默认情况下,NoScript 属性设置为“为 新式 网站 启用”和 “禁用 经典网站”。 这取决于租户设置。

有关这些 cmdlet 的详细信息,请参阅 Set-SPOTenantCdnPolicyGet-SPOTenantCdnPolicies

为资产添加源

使用 Add-SPOTenantCdnOrigin cmdlet 定义源。 可以定义多个源。 源是 SharePoint 库或文件夹的 URL,其中包含要由 CDN 托管的资产。

重要

不应将包含用户信息或被视为对组织敏感的资源置于公共来源。

Add-SPOTenantCdnOrigin -CdnType <Public | Private> -OriginUrl <path>

路径 的值是包含资产的库或文件夹的相对路径。 除了相对路径之外,还可以使用通配符。 源支持 URL 前置的通配符。 这允许创建跨多个站点的源。 例如,若要将所有网站的 masterpages 文件夹中的所有资产作为公共源包含在CDN中,请键入以下命令:

Add-SPOTenantCdnOrigin -CdnType Public -OriginUrl */masterpage
  • 通配符修饰符 */ 只能在路径开头使用,并将匹配指定 URL 下的所有 URL 段。
  • 路径可以指向文档库、文件夹或网站。 例如,路径 */site1 将匹配网站下的所有文档库。

可以添加具有特定相对路径的源。 不能使用完整路径添加源。

本示例在特定网站上添加网站汇总库的专用来源:

Add-SPOTenantCdnOrigin -CdnType Private -OriginUrl sites/site1/siteassets

本示例在网站集的网站资产库中添加 文件夹 1 文件夹的专用来源:

Add-SPOTenantCdnOrigin -CdnType Private -OriginUrl sites/test/siteassets/folder1

如果路径中有空格,可以使用双引号括住路径,也可以将该空间替换为 URL 编码 %20。 以下示例在网站集的网站资产库中添加 文件夹 1 文件夹的专用来源:

Add-SPOTenantCdnOrigin -CdnType Private -OriginUrl sites/test/siteassets/folder%201
Add-SPOTenantCdnOrigin -CdnType Private -OriginUrl "sites/test/siteassets/folder 1"

有关此命令及其语法的详细信息,请参阅 Add-SPOTenantCdnOrigin

备注

在专用源中,从源共享的资产必须发布主要版本,然后才能从CDN访问这些版本。

运行该命令后,系统会跨数据中心同步配置。 这最多可能需要 15 分钟。

示例:为母版页和SharePoint Online 的样式库配置公共源

通常,在启用Office 365 CDN时,默认情况下会为你设置这些源。 但是,如果要手动启用它们,请执行以下步骤。

  • 使用 Add-SPOTenantCdnOrigin cmdlet 将样式库定义为公共源。

    Add-SPOTenantCdnOrigin -CdnType Public -OriginUrl */style%20library
    
  • 使用 Add-SPOTenantCdnOrigin cmdlet 将母版页定义为公共源。

    Add-SPOTenantCdnOrigin -CdnType Public -OriginUrl */masterpage
    

有关此命令及其语法的详细信息,请参阅 Add-SPOTenantCdnOrigin

运行该命令后,系统会跨数据中心同步配置。 这最多可能需要 15 分钟。

示例:为网站资产、网站页面配置专用来源,并为 SharePoint Online 发布图像

  • 使用 Add-SPOTenantCdnOrigin cmdlet 将站点资产文件夹定义为专用源。

    Add-SPOTenantCdnOrigin -CdnType Private -OriginUrl */siteassets
    
  • 使用 Add-SPOTenantCdnOrigin cmdlet 将网站页文件夹定义为专用源。

    Add-SPOTenantCdnOrigin -CdnType Private -OriginUrl */sitepages
    
  • 使用 Add-SPOTenantCdnOrigin cmdlet 将发布图像文件夹定义为专用源。

    Add-SPOTenantCdnOrigin -CdnType Private -OriginUrl */publishingimages
    

有关此命令及其语法的详细信息,请参阅 Add-SPOTenantCdnOrigin

运行该命令后,系统会跨数据中心同步配置。 这最多可能需要 15 分钟。

示例:为 SharePoint Online 的网站集配置专用源

使用 Add-SPOTenantCdnOrigin cmdlet 将网站集定义为专用源。 例如:

Add-SPOTenantCdnOrigin -CdnType Private -OriginUrl sites/site1/siteassets

有关此命令及其语法的详细信息,请参阅 Add-SPOTenantCdnOrigin

运行该命令后,系统会跨数据中心同步配置。 当 SharePoint Online 租户连接到CDN服务时,可能会看到“配置挂起”消息。 这最多可能需要 15 分钟。

管理Office 365 CDN

设置CDN后,可以在更新内容时或需求发生变化时对配置进行更改,如本部分所述。

从Office 365 CDN添加、更新或删除资产

完成设置步骤后,可以添加新资产,并随时更新或删除现有资产。 只需更改已标识为源的文件夹或SharePoint库中的资产即可。 如果添加新资产,则可立即通过CDN。 但是,如果更新资产,则新副本最长需要 15 分钟才能传播,并在CDN中可用。

如果需要检索源位置,可以使用 Get-SPOTenantCdnOrigins cmdlet。 有关如何使用此 cmdlet 的信息,请参阅 Get-SPOTenantCdnOrigins

从Office 365 CDN中删除源

可以删除对标识为源的文件夹或SharePoint库的访问权限。 为此,请使用 Remove-SPOTenantCdnOrigin cmdlet。

Remove-SPOTenantCdnOrigin -OriginUrl <path> -CdnType <Public | Private | Both>

有关如何使用此 cmdlet 的信息,请参阅 Remove-SPOTenantCdnOrigin

修改Office 365 CDN中的源

无法修改已创建的源。 相反,请删除源,然后添加一个新源。 有关详细信息,请参阅“从Office 365 CDN中删除源添加资产的源

禁用Office 365 CDN

使用 Set-SPOTenantCdnEnabled cmdlet 为组织禁用CDN。 如果为CDN启用了公共和专用源,则需要运行该 cmdlet 的两倍,如以下示例所示。

若要在CDN中禁用公共源,请输入以下命令:

Set-SPOTenantCdnEnabled -CdnType Public -Enable $false

若要在CDN中禁用专用源,请输入以下命令:

Set-SPOTenantCdnEnabled -CdnType Private -Enable $false

有关此 cmdlet 的详细信息,请参阅 Set-SPOTenantCdnEnabled

使用 PnP PowerShell 设置和配置Office 365 CDN

本部分中的过程要求使用 PnP PowerShell 连接到 SharePoint Online。 有关说明,请参阅 PnP PowerShell 入门

完成以下步骤,设置和配置CDN,以便使用 PnP PowerShell 在 SharePoint Online 中托管资产。

单击展开

使组织能够使用Office 365 CDN

在更改租户CDN设置之前,应检索Office 365租户中专用CDN配置的当前状态。 使用 PnP PowerShell 向租户连接:

Connect-PnPOnline -Url https://contoso-admin.sharepoint.com -UseWebLogin

现在,使用 Get-PnPTenantCdnEnabled cmdlet 从租户中检索CDN状态设置:

Get-PnPTenantCdnEnabled -CdnType <Public | Private>

指定 CdnType 的CDN状态将输出到屏幕。

使用 Set-PnPTenantCdnEnabled cmdlet 使组织能够使用Office 365 CDN。 可以让组织同时使用公共来源、专用来源或两者。 还可以将CDN配置为在启用默认源时跳过默认源的设置。 你以后始终可以按照本主题中所述添加这些源。

在 PnP PowerShell 中:

Set-PnPTenantCdnEnabled -CdnType <Public | Private | Both> -Enable $true

例如,若要使组织能够同时使用公共和专用来源,请键入以下命令:

Set-PnPTenantCdnEnabled -CdnType Both -Enable $true

若要使组织能够同时使用公共和专用源,但跳过设置默认源,请键入以下命令:

Set-PnPTenantCdnEnabled -CdnType Both -Enable $true -NoDefaultOrigins

有关启用Office 365 CDN时默认预配的源以及跳过默认源设置的潜在影响,请参阅默认CDN源。

若要使组织能够使用公共源,请键入以下命令:

Set-PnPTenantCdnEnabled -CdnType Public -Enable $true

若要使组织能够使用专用源,请键入以下命令:

Set-PnPTenantCdnEnabled -CdnType Private -Enable $true

有关此 cmdlet 的详细信息,请参阅 Set-PnPTenantCdnEnabled

更改要包含在Office 365 CDN (可选) 中的文件类型的列表

提示

使用 Set-PnPTenantCdnPolicy cmdlet 定义文件类型时,将覆盖当前定义的列表。 如果要将其他文件类型添加到列表中,请先使用该 cmdlet 来找出已允许的文件类型,并将其与新文件类型一起包含在列表中。

使用 Set-PnPTenantCdnPolicy cmdlet 定义可由CDN中的公共和专用源托管的静态文件类型。 默认情况下,允许使用常见的资产类型,例如 .css、.gif、.jpg 和.js。

在 PnP PowerShell 中:

Set-PnPTenantCdnPolicy -CdnType <Public | Private> -PolicyType IncludeFileExtensions -PolicyValue "<Comma-separated list of file types >"

例如,若要使CDN托管 .css 和 .png 文件,请输入命令:

Set-PnPTenantCdnPolicy -CdnType Private -PolicyType IncludeFileExtensions -PolicyValue "CSS,PNG"

若要查看CDN当前允许的文件类型,请使用 Get-PnPTenantCdnPolicies cmdlet:

Get-PnPTenantCdnPolicies -CdnType <Public | Private>

有关这些 cmdlet 的详细信息,请参阅 Set-PnPTenantCdnPolicyGet-PnPTenantCdnPolicies

更改要从Office 365 CDN (可选) 中排除的站点分类列表

提示

使用 Set-PnPTenantCdnPolicy cmdlet 排除站点分类时,将覆盖当前定义的列表。 如果想要排除其他站点分类,请先使用 cmdlet 找出已排除的分类,然后将它们与新分类一起添加。

使用 Set-PnPTenantCdnPolicy cmdlet 排除不希望通过CDN提供的站点分类。 默认情况下,不排除任何网站分类。

在 PnP PowerShell 中:

Set-PnPTenantCdnPolicy -CdnType <Public | Private> -PolicyType ExcludeRestrictedSiteClassifications  -PolicyValue "<Comma-separated list of site classifications>"

若要查看当前限制的网站分类,请使用 Get-PnPTenantCdnPolicies cmdlet:

Get-PnPTenantCdnPolicies -CdnType <Public | Private>

将返回的属性为 IncludeFileExtensionsExcludeRestrictedSiteClassificationsExcludeIfNoScriptDisabled

IncludeFileExtensions 属性包含将从CDN提供的文件扩展名列表。

备注

默认文件扩展名在公共扩展名和专用文件扩展名之间有所不同。

ExcludeRestrictedSiteClassifications 属性包含要从CDN中排除的站点分类。 例如,可以排除标记为 “机密”的网站,以便不会从CDN中提供应用该分类的网站中的内容。

ExcludeIfNoScriptDisabled 属性基于站点级别 的 NoScript 属性设置从CDN中排除内容。 默认情况下,NoScript 属性设置为“为 新式 网站 启用”和 “禁用 经典网站”。 这取决于租户设置。

有关这些 cmdlet 的详细信息,请参阅 Set-PnPTenantCdnPolicyGet-PnPTenantCdnPolicies

为资产添加源

使用 Add-PnPTenantCdnOrigin cmdlet 定义源。 可以定义多个源。 源是 SharePoint 库或文件夹的 URL,其中包含要由 CDN 托管的资产。

重要

不应将包含用户信息或被视为对组织敏感的资源置于公共来源。

Add-PnPTenantCdnOrigin -CdnType <Public | Private> -OriginUrl <path>

路径 的值是包含资产的库或文件夹的相对路径。 除了相对路径之外,还可以使用通配符。 源支持 URL 前置的通配符。 这允许创建跨多个站点的源。 例如,若要将所有网站的 masterpages 文件夹中的所有资产作为公共源包含在CDN中,请键入以下命令:

Add-PnPTenantCdnOrigin -CdnType Public -OriginUrl */masterpage
  • 通配符修饰符 */ 只能在路径开头使用,并将匹配指定 URL 下的所有 URL 段。
  • 路径可以指向文档库、文件夹或网站。 例如,路径 */site1 将匹配网站下的所有文档库。

可以添加具有特定相对路径的源。 不能使用完整路径添加源。

此示例在特定网站上添加网站资产库的专用来源:

Add-PnPTenantCdnOrigin -CdnType Private -OriginUrl sites/site1/siteassets

本示例在网站集的网站资产库中添加 文件夹 1 文件夹的专用来源:

Add-PnPTenantCdnOrigin -CdnType Private -OriginUrl sites/test/siteassets/folder1

如果路径中有空格,可以使用双引号括住路径,也可以将该空间替换为 URL 编码 %20。 以下示例在网站集的网站资产库中添加 文件夹 1 文件夹的专用来源:

Add-PnPTenantCdnOrigin -CdnType Private -OriginUrl sites/test/siteassets/folder%201
Add-PnPTenantCdnOrigin -CdnType Private -OriginUrl "sites/test/siteassets/folder 1"

有关此命令及其语法的详细信息,请参阅 Add-PnPTenantCdnOrigin

备注

在专用源中,从源共享的资产必须发布主要版本,然后才能从CDN访问这些版本。

运行该命令后,系统会跨数据中心同步配置。 这最多可能需要 15 分钟。

示例:为母版页和SharePoint Online 的样式库配置公共源

通常,在启用Office 365 CDN时,默认情况下会为你设置这些源。 但是,如果要手动启用它们,请执行以下步骤。

  • 使用 Add-PnPTenantCdnOrigin cmdlet 将样式库定义为公共源。

    Add-PnPTenantCdnOrigin -CdnType Public -OriginUrl */style%20library
    
  • 使用 Add-PnPTenantCdnOrigin cmdlet 将母版页定义为公共源。

    Add-PnPTenantCdnOrigin -CdnType Public -OriginUrl */masterpage
    

有关此命令及其语法的详细信息,请参阅 Add-PnPTenantCdnOrigin

运行该命令后,系统会跨数据中心同步配置。 这最多可能需要 15 分钟。

示例:为网站资产、网站页面配置专用来源,并为 SharePoint Online 发布图像

  • 使用 Add-PnPTenantCdnOrigin cmdlet 将站点资产文件夹定义为专用源。

    Add-PnPTenantCdnOrigin -CdnType Private -OriginUrl */siteassets
    
  • 使用 Add-PnPTenantCdnOrigin cmdlet 将网站页文件夹定义为专用源。

    Add-PnPTenantCdnOrigin -CdnType Private -OriginUrl */sitepages
    
  • 使用 Add-PnPTenantCdnOrigin cmdlet 将发布图像文件夹定义为专用源。

    Add-PnPTenantCdnOrigin -CdnType Private -OriginUrl */publishingimages
    

有关此命令及其语法的详细信息,请参阅 Add-PnPTenantCdnOrigin

运行该命令后,系统会跨数据中心同步配置。 这最多可能需要 15 分钟。

示例:为 SharePoint Online 的网站集配置专用源

使用 Add-PnPTenantCdnOrigin cmdlet 将网站集定义为专用源。 例如:

Add-PnPTenantCdnOrigin -CdnType Private -OriginUrl sites/site1/siteassets

有关此命令及其语法的详细信息,请参阅 Add-PnPTenantCdnOrigin

运行该命令后,系统会跨数据中心同步配置。 当 SharePoint Online 租户连接到CDN服务时,可能会看到“配置挂起”消息。 这最多可能需要 15 分钟。

管理Office 365 CDN

设置CDN后,可以在更新内容时或需求发生变化时对配置进行更改,如本部分所述。

从Office 365 CDN添加、更新或删除资产

完成设置步骤后,可以添加新资产,并随时更新或删除现有资产。 只需更改已标识为源的文件夹或SharePoint库中的资产即可。 如果添加新资产,则可立即通过CDN。 但是,如果更新资产,则新副本最长需要 15 分钟才能传播,并在CDN中可用。

如果需要检索源位置,可以使用 Get-PnPTenantCdnOrigin cmdlet。 有关如何使用此 cmdlet 的信息,请参阅 Get-PnPTenantCdnOrigin

从Office 365 CDN中删除源

可以删除对标识为源的文件夹或SharePoint库的访问权限。 为此,请使用 Remove-PnPTenantCdnOrigin cmdlet。

Remove-PnPTenantCdnOrigin -OriginUrl <path> -CdnType <Public | Private | Both>

有关如何使用此 cmdlet 的信息,请参阅 Remove-PnPTenantCdnOrigin

修改Office 365 CDN中的源

无法修改已创建的源。 相反,请删除源,然后添加一个新源。 有关详细信息,请参阅“从Office 365 CDN中删除源添加资产的源

禁用Office 365 CDN

使用 Set-PnPTenantCdnEnabled cmdlet 为组织禁用CDN。 如果为CDN启用了公共和专用源,则需要运行该 cmdlet 的两倍,如以下示例所示。

若要在CDN中禁用公共源,请输入以下命令:

Set-PnPTenantCdnEnabled -CdnType Public -Enable $false

若要在CDN中禁用专用源,请输入以下命令:

Set-PnPTenantCdnEnabled -CdnType Private -Enable $false

有关此 cmdlet 的详细信息,请参阅 Set-PnPTenantCdnEnabled

使用用于Microsoft 365的 CLI 设置和配置Office 365 CDN

本部分中的过程要求已安装用于Microsoft 365的 CLI。 接下来,使用登录命令连接到Office 365租户。

完成以下步骤,设置和配置CDN,以便使用 CLI Microsoft 365在 SharePoint Online 中托管资产。

单击展开

启用Office 365 CDN

可以运行 spo cdn set 命令,在租户中管理 Office 365 CDN 的状态。

若要在租户中启用 Office 365 公用 CDN,请运行以下命令:

spo cdn set --type Public --enabled true

若要启用Office 365 SharePoint CDN,请执行:

spo cdn set --type Private --enabled true

查看 Office 365 CDN 的当前状态

若要检查是否启用或禁用了特定类型的Office 365 CDN,请使用 spo cdn get 命令。

若要检查 Office 365 公用 CDN 是否已启用,请运行以下命令:

spo cdn get --type Public

查看Office 365 CDN源

若要查看当前配置的 Office 365 公用 CDN 源,请运行以下命令:

spo cdn origin list --type Public

有关启用Office 365 CDN时默认预配的源的信息,请参阅默认CDN源

添加Office 365 CDN源

重要

不应将被视为对组织敏感的资源放置在配置为公共源的SharePoint文档库中。

运行 spo cdn origin add 命令可以定义 CDN 源。 可以定义多个源。 源是 SharePoint 库或文件夹的 URL,其中包含要由 CDN 托管的资产。

spo cdn origin add --type [Public | Private] --origin <path>

包含资产的文件夹的相对路径在哪里 path 。 除了相对路径之外,还可以使用通配符。

若要将所有网站的 母版页库 中的所有资产作为公共源,请执行:

spo cdn origin add --type Public --origin */masterpage

若要配置特定网站集的专用源,请运行以下命令:

spo cdn origin add --type Private --origin sites/site1/siteassets

备注

添加 CDN 源后,最长可能需要 15 分钟,才能通过 CDN 服务检索文件。 可以运行 spo cdn origin list 命令,验证特定源是否已启用。

删除Office 365 CDN源

运行 spo cdn origin remove 命令可以删除指定类型 CDN 的 CDN 源。

若要从CDN配置中删除公共源,请执行:

spo cdn origin remove --type Public --origin */masterpage

备注

删除CDN源不会影响存储在与该源匹配的任何文档库中的文件。 如果已使用SharePoint URL 引用这些资产,SharePoint将自动切换回指向文档库的原始 URL。 但是,如果已使用公共CDN URL 引用资产,则删除源将中断链接,并且需要手动更改它们。

修改Office 365 CDN源

无法修改现有 CDN 源。 而应运行 spo cdn origin remove 命令删除以前定义的 CDN 源,并运行 spo cdn origin add 命令添加新源。

更改要包含在Office 365 CDN中的文件类型

默认情况下,CDN中包含以下文件类型:.css、.eot、.gif、.ico、.jpeg、.jpg、.js、.map、.png、.svg、.ttf、.woff 和 .woff2。 如果需要在 CDN 中添加其他类型的文件,可以运行 spo cdn policy set 命令更改 CDN 配置。

备注

如果更改文件类型列表,也就是覆盖当前定义的列表。 若要添加其他文件类型,请先运行 spo cdn policy list 命令,确定当前配置的文件类型。

若要将 JSON 文件类型添加到公共CDN中包含的文件类型的默认列表,请执行:

spo cdn policy set --type Public --policy IncludeFileExtensions --value "CSS,EOT,GIF,ICO,JPEG,JPG,JS,MAP,PNG,SVG,TTF,WOFF,JSON"

更改要从 Office 365 CDN 中排除的网站分类列表

运行 spo cdn policy set 命令可以排除不想通过 CDN 提供的网站分类。 默认情况下,不排除任何网站分类。

备注

如果更改已排除的网站分类列表,也就是覆盖当前定义的列表。 若要排除其他分类,请先运行 spo cdn policy list 命令,确定当前配置的分类。

若要从公共CDN中排除分类为 HBI 的站点,请执行

spo cdn policy set --type Public --policy ExcludeRestrictedSiteClassifications --value "HBI"

禁用Office 365 CDN

若要禁用 Office 365 CDN,请运行 spo cdn set 命令。例如:

spo cdn set --type Public --enabled false

使用CDN资产

现在,你已启用CDN并配置了源和策略,可以开始使用CDN资产。

本部分将帮助你了解如何在SharePoint页面和内容中使用CDN URL,以便SharePoint将公共和专用来源资产的请求重定向到CDN。

有关如何使用CDN托管客户端 Web 部件的信息,请参阅主题托管Office 365 CDN (Hello World第 4 部分) 中的客户端 Web 部件

备注

如果将 ClientSideAssets 文件夹添加到 专用 CDN源列表,CDN托管的自定义 Web 部件将无法呈现。 SPFX Web 部件使用的文件只能使用公共CDN,而 ClientSideAssets 文件夹是公共CDN的默认来源。

若要使用已添加到源的资产,只需使用源中文件的路径更新原始文件的链接。

  • 编辑包含已添加到源的资产的链接的页面或内容。 如果想要在显示给定资产的任意位置更新链接,还可以使用多种方法之一来全局搜索和替换输入网站或网站集中的链接。
  • 对于源中资产的每个链接,请将路径替换为CDN源中文件的路径。 可以使用相对路径。
  • 保存页面或内容。

例如,考虑已复制到文档库文件夹 /site/CDN_origins/public/的图像 /site/SiteAssets_/images/image.png_。 若要使用CDN资产,请将映像文件位置的原始路径替换为源的路径,使新的 URL /site/CDN_origins/public/image.png

如果要使用资产的完整 URL 而不是相对路径,请构造如下所示的链接:

https://<TenantHostName>.sharepoint.com/sites/site/CDN_origins/public/image.png

备注

一般情况下,不应将 URL 硬编码为CDN中的资产。 但是,可以根据需要手动为公共来源中的资产构造 URL。 有关详细信息,请参阅公共资产的硬编码CDN URL

若要了解如何验证是否从CDN提供资产,请参阅如何实现确认资产是否由CDN提供?Office 365 CDN疑难解答中。

使用公共来源中的资产

SharePoint Online 中的 发布功能 会自动将公共来源中存储的资产的 URL 重写为其CDN等效项,以便从CDN服务而不是SharePoint提供资产。

如果源位于启用了发布功能的站点中,并且要卸载到CDN的资产属于以下类别之一,则SharePoint将自动重写源中资产的 URL,前提是CDN策略未排除资产。

下面概述了 SharePoint 发布功能自动重写的链接:

  • 经典发布页面 HTML 响应中的 IMG/LINK/CSS URL
    • 这包括作者在页面的 HTML 内容中添加的图像
  • 图片库幻灯片 Web 部件图像 URL
  • SPList REST API (RenderListDataAsStream) 结果中的图像字段
    • 使用新属性 ImageFieldsToTryRewriteToCdnUrls 提供逗号分隔的字段列表
    • 支持超链接字段和 PublishingImage 字段
  • SharePoint图像呈现

下图说明了当SharePoint收到包含来自公共来源的资产的页面的请求时的工作流。

工作流图:从公共来源检索Office 365 CDN资产。

提示

如果要对页面上的特定 URL 禁用自动重写,可以签出页面并添加查询字符串参数 ?NoAutoReWrites=true 表示要禁用的每个链接的末尾。

为公共资产构造CDN URL

如果未为公共源启用 发布 功能,或者资产不是CDN服务自动重写功能支持的链接类型之一,则可以手动将 URL 构造到资产的CDN位置,并在内容中使用这些 URL。

备注

无法对专用源中的资产CDN URL 进行硬编码或构造,因为请求资源时会生成构成 URL 最后一部分的必需访问令牌。 可以为公共CDN构造 URL,并且不应硬编码 URL,因为它可能会发生更改。

对于公共CDN资产,URL 格式如下所示:

https://publiccdn.sharepointonline.com/<TenantHostName>/sites/site/library/asset.png

TenantHostName 替换为租户名称。 示例:

https://publiccdn.sharepointonline.com/contoso.sharepoint.com/sites/site/library/asset.png

备注

应使用页面上下文属性来构造前缀,而不是硬编码“https://publiccdn.sharepointonline.com”。 URL 可能会更改,不应硬编码。 如果将显示模板与经典 SharePoint Online 配合使用,则可以使用显示模板中的属性“window._spPageContextInfo.publicCdnBaseUrl”作为 URL 的前缀。 如果为新式和经典SharePoint SPFx Web 部件,则可以使用属性“this.context.pageContext.legacyPageContext.publicCdnBaseUrl”。 这将提供前缀,以便如果更改,则实现将随之更新。 作为SPFx的示例,可以使用属性“this.context.pageContext.legacyPageContext.publicCdnBaseUrl” + “/” + “host” + “/” + “relativeURL for the item”构造 URL。 请参阅在客户端代码中使用CDN,这是第 1 季性能系列的一部分

在专用来源中使用资产

使用专用来源中的资产不需要其他配置。 SharePoint联机自动重写私有资产的 URL,以便始终从CDN提供对这些资产的请求。 无法手动生成 URL 以CDN专用来源中的资产,因为这些 URL 包含必须在请求资产时由 SharePoint Online 自动生成的令牌。

对专用源中的资产的访问受基于用户对源的权限动态生成的令牌的保护,以下部分中介绍了这些注意事项。 用户必须至少具有对源的 取访问权限,CDN才能呈现内容。

下图说明了当SharePoint收到包含来自专用来源的资产的页面的请求时的工作流。

工作流图:从专用来源检索Office 365 CDN资产。

专用来源中基于令牌的授权

SharePoint Online 生成的令牌授予对Office 365 CDN中专用来源资产的访问权限。 已有权访问源指定的文件夹或库的用户将自动获得令牌,允许用户基于其权限级别访问文件。 这些访问令牌在生成后 30 到 90 分钟有效,有助于防止令牌重播攻击。

生成访问令牌后,SharePoint Online 将向客户端返回一个自定义 URI,其中包含两个 授权参数, (边缘授权令牌) 和 燕麦 (源授权令牌) 。 每个令牌的结构 是<“以纪元时间格式的过期时间”>__<“安全签名”>。 例如:

https://privatecdn.sharepointonline.com/contoso.sharepoint.com/sites/site1/library1/folder1/image1.jpg?eat=1486154359_cc59042c5c55c90b26a2775323c7c8112718431228fe84d568a3795a63912840&oat=1486154359_7d73c2e3ba4b7b1f97242332900616db0d4ffb04312

备注

拥有令牌的任何人都可以访问CDN中的资源。 但是,包含这些访问令牌的 URL 仅通过 HTTPS 共享,因此除非最终用户在令牌过期前显式共享该 URL,否则未经授权的用户将无法访问该资产。

私有来源中的资产不支持项级权限

请务必注意,SharePoint Online 不支持对私有来源资产的项级权限。 例如,对于位于 https://contoso.sharepoint.com/sites/site1/library1/folder1/image1.jpg此处的文件,用户可以根据以下条件有效访问该文件:

User 权限 有效访问
用户 1 有权访问文件夹 1 可以从CDN访问image1.jpg
用户 2 无权访问文件夹 1 无法从CDN访问image1.jpg
用户 3 没有文件夹 1 的访问权限,但被授予在 SharePoint Online 中访问image1.jpg的显式权限 可以直接从 SharePoint Online 访问资产image1.jpg,但不能从CDN
用户 4 有权访问文件夹 1,但已明确拒绝访问 SharePoint Online 中的image1.jpg 无法从 SharePoint Online 访问资产,但可以从CDN访问资产,尽管在 SharePoint Online 中被拒绝访问该文件

排查Office 365 CDN

如何实现确认CDN正在提供资产?

将CDN资产的链接添加到页面后,可以通过浏览到页面来确认资产是否正在从CDN提供,并在图像呈现后右键单击图像并查看图像 URL。

还可以使用浏览器的开发人员工具查看页面上每个资产的 URL,或使用第三方网络跟踪工具。

备注

如果使用网络工具(例如 Fiddler)在从SharePoint页呈现资产之外测试资产,则必须手动将引用者标头“引用者:”https://yourdomain.sharepoint.com添加到 GET 请求中,其中 URL 是 SharePoint Online 租户的根 URL。

无法直接在 Web 浏览器中测试CDN URL,因为必须具有来自 SharePoint Online 的引用器。 但是,如果将CDN资产 URL 添加到SharePoint页,然后在浏览器中打开页面,则会看到页面上呈现的CDN资产。

有关在Microsoft Edge浏览器中使用开发人员工具的详细信息,请参阅Microsoft Edge开发人员工具

若要观看在 SharePoint 开发人员模式和实践 YouTube 频道中托管的简短视频,演示如何验证CDN是否正常工作,请参阅“验证CDN使用情况并确保最佳网络连接

为什么新来源的资产不可用?

新源中的资产不会立即可供使用,因为注册通过CDN传播以及从源上传到CDN存储需要时间。 资产在CDN中可用所需的时间取决于资产数量和文件大小。

我的客户端 Web 部件或SharePoint 框架解决方案不起作用

为公共源启用Office 365 CDN时,CDN服务会自动创建以下默认源:

  • */MASTERPAGE
  • */STYLE LIBRARY
  • */CLIENTSIDEASSETS

如果缺少 */clientsideassets 源,则SharePoint 框架解决方案将失败,并且不会生成警告或错误消息。 此源可能缺失,因为CDN已启用 -NoDefaultOrigins 参数设置为 $true,或者因为源是手动删除的。

可以使用以下 PowerShell 命令检查存在哪些源:

Get-SPOTenantCdnOrigins -CdnType Public

也可以使用 Office 365 CLI 进行检查:

spo cdn origin list

若要在 PowerShell 中添加源,请执行以下操作:

Add-SPOTenantCdnOrigin -CdnType Public -OriginUrl */CLIENTSIDEASSETS

若要在 Office 365 CLI 中添加源,请执行以下操作:

spo cdn origin add --origin */CLIENTSIDEASSETS

我需要使用哪些 PowerShell 模块和 CLI shell 来处理Office 365 CDN?

可以选择使用 SharePoint Online Management Shell PowerShell 模块或 Office 365 CLI 处理Office 365 CDN

另请参阅

内容分发网络

Office 365 网络计划和性能优化

SharePoint性能系列 - Office 365 CDN视频系列