【问题标题】:Upload large files to sitecore media library将大文件上传到 sitecore 媒体库
【发布时间】:2013-01-29 11:00:42
【问题描述】:

我有一个以媒体为中心的网站,需要我们将大图像、视频上传到媒体库。

我在 web.config 中有以下设置的默认设置。

  1. Media.MaxSizeInDatabase (20MB)
  2. httpRuntime maxRequestLength

出于安全原因,我不想增加生产服务器上的 MaxSizeInDatabase 限制。

此外,Media.UploadAsFiles 设置为 false。

所以,我的问题是 - 有没有办法配置 sitecore,如果上传的文件小于 20MB,它会存储在数据库中,而大于 20MB 的文件会存储在文件系统中?

【问题讨论】:

  • 只是一个友好的警告,我发现 Sitecore 对非常大的图像不太满意,当它尝试重新缩放它们时(例如,一个 10mb 的图像,需要大量的内存,当它正在调整大小)。因此,请确保您运行的是 64 位并具有大量内存。此外,如果视频非常大,用户必须先下载它们,因为 Sitecore 默认不进行流式传输。

标签: c# asp.net .net sitecore sitecore-media-library


【解决方案1】:

不,我不知道。至少不是自动的。根据您的设置,上传的文件要么存储在数据库中,要么存储在文件系统中。 您可能想要创建一个覆盖上传方法,它可以自动为您处理此问题,或者使用 Jammykam 所说的高级媒体上传方法中的手动复选框。

【讨论】:

  • 谢谢 - 感谢你们的帮助。
【解决方案2】:

正如 Martijn 所说,没有任何内置功能可以自动检测到这一点,但如果您知道文件会很大(或者由于文件过大而导致上传失败),那么您可以手动“强制”保存以每次上传为基础进行归档。

您需要使用高级上传选项并选择“上传为文件”选项。

编辑:如果您能够使用 YouTube,请考虑与 Sitecore 完美/紧密集成的以下模块。对于不同的提供商,还有其他几种方法可以实现相同的目标。

【讨论】:

  • 谢谢大家,这很有帮助。我正在考虑增加 maxsizeindatabase 以将所有内容存储在数据库中,或将所有项目存储在文件系统上。您认为哪种方法更适合大文件(比如最大 50-60MB)?
  • 存储在数据库中意味着更大的大小,因此意味着更多的备份,加上更多的数据库负载和更多的内部流量,因为媒体将在第一次请求时被提取到磁盘。然而,存储到磁盘意味着您没有跨服务器发布媒体的好处(例如,主到 Web),只有实际的媒体项目定义而不是物理图像/视频/文件,因此您必须设置某种服务器之间的同步。如果是视频,那么我会在可能的情况下亲自在外部托管它们,让 YouTube/CDN 为您处理负载和流量。
  • 应该添加,它还取决于您期望为您的网站带来的流量。尽管如此,我仍然会想观看 YouTube/CDN 视频。
  • 如果您将媒体项存储在磁盘上,您还可以在发布事件后使用 Webdeploy 在前端服务器之间同步您的媒体。
猜你喜欢
  • 1970-01-01
  • 2023-03-24
  • 2012-01-29
  • 1970-01-01
  • 1970-01-01
  • 2016-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多