C# 将大型文件上载到sitecore媒体库

C# 将大型文件上载到sitecore媒体库,c#,asp.net,.net,sitecore,sitecore-media-library,C#,Asp.net,.net,Sitecore,Sitecore Media Library,我有一个以媒体为中心的网站,要求我们将大型图像、视频上传到媒体库 我在web.config中有以下设置的默认设置 Media.MaxSizeInDatabase(20MB) httpRuntime maxRequestLength 出于安全原因,我不想增加生产服务器上的MaxSizeInDatabase限制 此外,Media.UploadAsFiles设置为false 所以,我的问题是-是否有一种方法可以配置sitecore,以便在上载的文件小于20MB时,将其存储在数据库中,而大于20MB的文

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

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

  • Media.MaxSizeInDatabase(20MB)
  • httpRuntime maxRequestLength
  • 出于安全原因,我不想增加生产服务器上的MaxSizeInDatabase限制

    此外,Media.UploadAsFiles设置为false


    所以,我的问题是-是否有一种方法可以配置sitecore,以便在上载的文件小于20MB时,将其存储在数据库中,而大于20MB的文件将存储在文件系统中

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

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

    如Martijn所说,没有内置自动检测此问题的功能,但是如果您知道该文件将很大(或者由于文件太大,上传失败)然后您可以手动“强制”每次上传保存到文件中

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

    <>编辑:如果你能使用YouTube,那么考虑下面的模块与SITECORE很好地/紧密地集成。对于不同的提供者,有几种其他的方式可以实现相同的事情。

    正如Martijn所说,没有任何内置功能可以自动检测到这一点,但如果您知道文件将变大(或由于文件变大而导致上载失败),则可以手动“强制”每次上载都将其保存到文件中

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

    <>编辑:如果你能使用YouTube,那么考虑下面的模块与SITECORE很好地/紧密地集成。对于不同的提供者,有几种其他的方式可以实现相同的事情。

    这只是一个友好的警告,我发现Sitecore在尝试重新缩放超大图像时对这些图像不太满意(例如,一个10mb的租用图像,在调整大小时占用大量ram)。因此,请确保您运行的是64位且具有大量内存。此外,如果视频非常大,用户必须先下载,因为Sitecore不会按默认值进行流式处理。只是一个友好的警告,我发现Sitecore在尝试重新缩放非常大的图像时并不太满意(例如,一个10mb的租用图像,在调整大小时占用大量内存)。因此,请确保您运行的是64位并具有大量内存。此外,如果视频非常大,用户必须首先下载视频,因为Sitecore默认情况下不会进行流式处理。感谢各位,这非常有用。我正在考虑增加maxsizeindatabase以将所有内容存储在数据库中,或将所有项目存储在文件系统中。这对于大文件(例如高达50-60MB的文件),最好使用这种方法根据您的说法?在DB中存储意味着增加了大小,因此意味着需要更多的备份,加上数据库上的更多负载和更多的内部流量,因为介质将在第一次请求时被提取到磁盘。但是,存储到磁盘意味着您没有跨服务器发布介质的好处(例如,从主机到web),只有实际的媒体项定义,而不是物理图像/视频/文件,因此您必须在服务器之间设置某种同步。如果是视频,则我将在可能的情况下亲自在外部托管它们,让YouTube/CDN为您处理负载和流量。应已添加,这还取决于您期望的流量你的网站。尽管如此,我还是会喜欢YouTube/CDN视频。如果你将mediaitems存储在磁盘上,你也可以在发布事件后使用Webdeploy在前端服务器上同步媒体。谢谢大家,这非常有用。我正在考虑增加maxsizeindatabase以将所有内容存储在数据库中,或者存储所有内容文件系统上的ems。对于大文件(例如高达50-60MB)哪种方法更可取根据您的说法?在DB中存储意味着增加了大小,因此意味着需要更多的备份,加上数据库上的更多负载和更多的内部流量,因为介质将在第一次请求时被提取到磁盘。但是,存储到磁盘意味着您没有跨服务器发布介质的好处(例如,从主机到web),只有实际的媒体项定义,而不是物理图像/视频/文件,因此您必须在服务器之间设置某种同步。如果是视频,则我将在可能的情况下亲自在外部托管它们,让YouTube/CDN为您处理负载和流量。应已添加,这还取决于您期望的流量你的网站。尽管如此,我还是会喜欢YouTube/CDN视频。如果你将mediaitems存储在磁盘上,你也可以在发布事件后使用Webdeploy在前端服务器上同步媒体。谢谢-感谢你的帮助。谢谢-感谢你的帮助。