将大文件上传到 sitecore 媒体库
Posted
技术标签:
【中文标题】将大文件上传到 sitecore 媒体库【英文标题】:Upload large files to sitecore media library 【发布时间】:2013-01-29 11:00:42 【问题描述】:我有一个以媒体为中心的网站,需要我们将大图像、视频上传到媒体库。
我在 web.config 中有以下设置的默认设置。
-
Media.MaxSizeInDatabase (20MB)
httpRuntime maxRequestLength
出于安全原因,我不想增加生产服务器上的 MaxSizeInDatabase 限制。
此外,Media.UploadAsFiles 设置为 false。
所以,我的问题是 - 有没有办法配置 sitecore,如果上传的文件小于 20MB,它会存储在数据库中,而大于 20MB 的文件会存储在文件系统中?
【问题讨论】:
只是一个友好的警告,我发现 Sitecore 对非常大的图像不太满意,当它尝试重新缩放它们时(例如,一个 10mb 的图像,需要大量的内存,当它正在调整大小)。因此,请确保您运行的是 64 位并具有大量内存。此外,如果视频非常大,用户必须先下载它们,因为 Sitecore 默认不进行流式传输。 【参考方案1】:不,我不知道。至少不是自动的。根据您的设置,上传的文件要么存储在数据库中,要么存储在文件系统中。 您可能想要创建一个覆盖上传方法,它可以自动为您处理此问题,或者使用 Jammykam 所说的高级媒体上传方法中的手动复选框。
【讨论】:
谢谢 - 感谢你们的帮助。【参考方案2】:正如 Martijn 所说,没有任何内置功能可以自动检测到这一点,但如果您知道文件会很大(或者由于文件过大而导致上传失败),那么您可以手动“强制”保存以每次上传为基础进行归档。
您需要使用高级上传选项并选择“上传为文件”选项。
编辑:如果您能够使用 YouTube,请考虑与 Sitecore 完美/紧密集成的以下模块。对于不同的提供商,还有其他几种方法可以实现相同的目标。
YouTube Integration YouTube Uploader【讨论】:
谢谢大家,这很有帮助。我正在考虑增加 maxsizeindatabase 以将所有内容存储在数据库中,或将所有项目存储在文件系统上。您认为哪种方法更适合大文件(比如最大 50-60MB)? 存储在数据库中意味着更大的大小,因此意味着更多的备份,加上更多的数据库负载和更多的内部流量,因为媒体将在第一次请求时被提取到磁盘。然而,存储到磁盘意味着您没有跨服务器发布媒体的好处(例如,主到 Web),只有实际的媒体项目定义而不是物理图像/视频/文件,因此您必须设置某种服务器之间的同步。如果是视频,那么我会在可能的情况下亲自在外部托管它们,让 YouTube/CDN 为您处理负载和流量。 应该添加,它还取决于您期望为您的网站带来的流量。尽管如此,我仍然会想观看 YouTube/CDN 视频。 如果您将媒体项存储在磁盘上,您还可以在发布事件后使用 Webdeploy 在前端服务器之间同步您的媒体。以上是关于将大文件上传到 sitecore 媒体库的主要内容,如果未能解决你的问题,请参考以下文章