使用PowerShell的Sitecore下载媒体文件夹

时间:2016-06-22 16:26:01

标签: powershell sitecore

我要求从我们的Sitecore媒体库的特定文件夹中删除多个PDF,可能超过1000个文档。我们需要维护这些PDF的文件名,并且更愿意维护"文件结构/层次结构"这些文件。

我们已尝试使用Sitecore Powershell Extensions"下载"功能,但它似乎不下载PDF,只下载内容项本身。我们可以创建一个包,但包含生成的PDF的文件夹的文件名已被GUID替换。

是否有PS脚本可用或以其他方式批量下载这些媒体库PDF?

P.S。我是Powershell新手,所以请保持温柔。

2 个答案:

答案 0 :(得分:1)

听起来你需要使用Send-File命令。在媒体库项目上执行时,它允许您下载存储在该项目中的关联blob。

示例:

PS master:\>Get-Item "master:\media library\files\pdfs\mypdffile" | Send-File -Message "PDF Download"

您可以将-NoDialog传递给它,这样每次都不会向用户提出建议。

因此,对于多个文件,您可以这样做:

Get-Item -Path master -Query "/sitecore/#media library#/files//*[@@templatename='Pdf']" | 
    Send-File -NoDialog

对于那个用1000的文件,我看不出性能很好。此外,它不会保留路径,所有文件都将直接保存到Downloads文件夹。

答案 1 :(得分:0)

也许您可能有兴趣通过SPE Remoting使用下载功能。这是一种在Sitecore之外运行并通过Web服务连接的替代解决方案。

下载示例脚本:

https://github.com/SitecorePowerShell/Console/blob/master/Modules/Remoting%20Tests%20-%20Download%20with%20RemoteScriptCall.ps1

预订有关设置的详细信息:

https://sitecorepowershell.gitbooks.io/sitecore-powershell-extensions/content/remoting.html