Office 365 CDN - Preview vs General Availability
Office 365 CDN which provides a way to configure a SharePoint Document Library as a CDN is now Generally Available.
The preview was released few months back and if customers already using it while in Preview must know that the PowerShell commands and the way this works has changed a lot in General Availability. With GA, we now have a public CDN and a private CDN. Note that Private CDN is in Preview.
The main point to note is that the CDN URL generator /_vti_bin/publiccdn.ashx is not working anymore. This essentially means do not use it, update your URLs with the GA api.
Preview vs General Availability
Preview |
General Availability |
|
Link | https://dev.office.com/blogs/office-365-public-cdn-developer-preview-release | https://dev.office.com/blogs/general-availability-of-office-365-cdn |
Enable CDN (Tenant level setting) | Set-SPOTenant -PublicCdnEnabled $true | #NOTE: Public CDN is GA. Private CDN is in preview.Set-SPOTenantCdnEnabled -CdnType Public #-NoDefaultOriginsSet-SPOTenantCdnEnabled -CdnType Private #-NoDefaultOrigins#Alternatively enable both using below cmdlet#Set-SPOTenantCdnEnabled -CdnType Both |
Verify CDN Enabled | Get-SPOTenant | FL *cdn* | Get-SPOTenantCdnEnabled -CdnType PublicGet-SPOTenantCdnEnabled -CdnType Private |
Get CDN Policies | Get-SPOTenant | Select PublicCdnAllowedFileTypes | Get-SPOTenantCdnPolicies -CdnType PrivateGet-SPOTenantCdnPolicies -CdnType Public |
Set CDN Policy | Set-SPOTenant -PublicCdnAllowedFileTypes "CSS,EOT,GIF,ICO,JPEG,JPG,JS,MAP,PNG,TXT" | Set-SPOTenantCdnPolicy -PolicyType {IncludeFileExtensions | ExcludeRestrictedSiteClassifications | ExcludeIfNoScriptDisabled}-PolicyValue <string> -CdnType{Public | Private} |
New CDN Origin | New-SPOPublicCdnOrigin -Url "https://contoso.sharepoint.com/siteassets/folder1" | Add-SPOTenantCdnOrigin -CdnType Public -OriginUrl sites/dev/cdnlibAdd-SPOTenantCdnOrigin -CdnType Private -OriginUrl sites/pub/cdnlibAdd-SPOTenantCdnOrigin -CdnType Public -OriginUrl */imageassetsAdd-SPOTenantCdnOrigin -CdnType Public -OriginUrl */photos |
Get CDN Origins | Get-SPOPublicCdnOrigins | Get-SPOTenantCdnOrigins -CdnType PublicGet-SPOTenantCdnOrigins -CdnType Private |
Remove CDN Origins | Remove-SPOPublicCdnOrigin -Identity 193700617159… | Remove-SPOTenantCdnOrigin -CdnType Public -OriginUrl sites/dev/cdnlibRemove-SPOTenantCdnOrigin -CdnType Private -OriginUrl sites/pub/cdnlib |
CDN Url Structure | https://publiccdn.sharepointonline.com/<tenant host name>/<ID of the public CDN origin>/<sub-path under the origin> E.g: https://publiccdn.sharepointonline.com/ contoso.sharepoint.com /159..e352d/jigsaw.jpg | https://publiccdn.sharepointonline.com/<tenant host name>/sites/site/libraryE.g:https://publiccdn.sharepointonline.com/contoso.sharepoint.com/sites/dev/photos/jigsaw.jpg “https://privatecdn.sharepointonline.com/contoso.sharepoint.com/sites/pub/CDNLib/3.png?_eat_=1495567990_1130bbbb93becf13dd9ec288398ef3f53a8dd131d7f1116f9d3f0b89a5277b45 &_oat_=1495567990_de85e8d775578ba993690038577140247188eb5a69c7855ffffb89d5f8525519” |
Generate CDN Url | https://contoso.sharepoint.com/_vti_bin/publiccdn.ashx/url?itemurl=https://contoso.sharepoint.com/sites/Dev/SiteAssets/Photos/jigsaw.jpgNOTE: This CDN Url generator is not working anymore since the GA. I am assuming this is to discourage using the Preview api. I will update this as I learn more about it.See Vesa's note here. | https://contoso.sharepoint.com/_vti_bin/publiccdn.ashx/url?itemurl=https:// contoso.sharepoint.com/sites/Dev/SiteAssets/Photos/jigsaw.jpg |
CDN URL Validation in Fiddler | Add header “Referer: https://contoso.sharepoint.com” to the GET request | |
Auto-Rewrite of URls | Not Applicable | Only in GA |
Connect-SPOService https://contoso-admin.sharepoint.com
###GENERAL AVAILABILITY API######
Get-SPOTenantCdnEnabled -CdnType Public
Get-SPOTenantCdnEnabled -CdnType Private
Set-SPOTenantCdnEnabled -CdnType Public #-NoDefaultOrigins
Set-SPOTenantCdnEnabled -CdnType Private #-NoDefaultOrigins
#Set-SPOTenantCdnEnabled -CdnType Both
Get-SPOTenantCdnPolicies -CdnType Public
Get-SPOTenantCdnPolicies -CdnType Private
Set-SPOTenantCdnPolicy -PolicyType {IncludeFileExtensions | ExcludeRestrictedSiteClassifications | ExcludeIfNoScriptDisabled} -PolicyValue <string> -CdnType
{Public | Private}
Add-SPOTenantCdnOrigin -CdnType Public -OriginUrl sites/dev/cdnrepo
Add-SPOTenantCdnOrigin -CdnType Private -OriginUrl sites/pub/cdnlib
Add-SPOTenantCdnOrigin -CdnType Public -OriginUrl */imageassets
Add-SPOTenantCdnOrigin -CdnType Public -OriginUrl */photos
Get-SPOTenantCdnOrigins -CdnType Public
Get-SPOTenantCdnOrigins -CdnType Private
Remove-SPOTenantCdnOrigin -CdnType Public -OriginUrl sites/dev/cdnlib
Remove-SPOTenantCdnOrigin -CdnType Private -OriginUrl sites/pub/cdnlib
Set-SPOTenantCdnEnabled -CdnType Both -Enable $false
#GA SAMPLES
URL FORMAT: https://publiccdn.sharepointonline.com/<tenant host name>/sites/site/library
https://publiccdn.sharepointonline.com/contoso.sharepoint.com/sites/dev/cdnlib/3.png
https://publiccdn.sharepointonline.com/contoso.sharepoint.com/sites/dev/ImageAssets/ProdMgmt.png
https://publiccdn.sharepointonline.com/contoso.sharepoint.com/sites/dev1/photos/jigsaw.jpg
https://contoso.sharepoint.com/sites/pub/CDNLib/3.png
###PREVIEW API########
Get-SPOTenant | FL *cdn*
Set-SPOTenant -PublicCdnEnabled $true
Get-SPOTenant | Select PublicCdnAllowedFileTypes
Set-SPOTenant -PublicCdnAllowedFileTypes "CSS,EOT,GIF,ICO,JPEG,JPG,JS,MAP,PNG,SVG,TTF,WOFF,TXT"
New-SPOPublicCdnOrigin -Url "https://contoso.sharepoint.com/siteassets/folder1"
Get-SPOPublicCdnOrigins
Remove-SPOPublicCdnOrigin -Identity 1937006161eeae8fe7159…
#PREVIEW SAMPLES
URL FORMAT: https://publiccdn.sharepointonline.com/<tenant host name>/<ID of the public CDN origin>/<sub-path under the origin>
https://contoso.sharepoint.com/sites/Dev/SiteAssets/adal-lib/jigsaw.jpg
How does image renditions work in combination with the Office 365 CDN:
SharePoint Online and 2013/2016, it supports image renditions. Image renditions are configured using the Site Settings > Look & Feel > Image Renditions page. Example entry:
RenditionID: 8, Width: 200, Height: 400
Image renditions are used by appending the renditionid to the image url.
For example: https://contoso.sharepoint.com/sites/pub/cdnlib/jigsaw.png?RenditionID=8
This same approach is not supported with the images in a CDN enabled library. That means if you append RenditionID to CDN url (example: https://publiccdn.sharepointonline.com/mod362200.sharepoint.com/sites/pub/photos/jigsaw.jpg?RenditionID=8), its not honored.
Image Renditions for CDN images can be achieved much more easily by just appending the width and height to the CDN Url. Example: https://publiccdn.sharepointonline.com/contoso.sharepoint.com/sites/pub/photos/jigsaw.jpg?height=100\&width=100\&cropMode=fit
- Image rendition support for images from the CDN can be enabled with height and width query parameters in the URL
- Note. both height and width parameters are required for the renditions to work
- You can also control the cropMode for the images with cropMode query parameter with following options: fit, fill, top and bottom (fit is default value).
- You can use renditions with query parameters for the image URL
Comments
- Anonymous
May 24, 2017
Any idea when the Private CDN will become GA? One of our customers would prefer to use the Private CDN but they are hesitant as this is still in preview.- Anonymous
May 25, 2017
The comment has been removed- Anonymous
May 25, 2017
Thanks Srinivas
- Anonymous
- Anonymous