2016-10-31 60 views
2

我正在开发一个ASP.NET网站。在网站上,用户需要创建一个帐户,然后他们可以上传他们工作的视频。观众可以自由观看。我使用html5 <video>标签来显示视频。我正在使用SQL Server数据库。现在,当用户上传视频时,在哪里存储视频?我应该将所有视频存储在同一个文件夹中吗?如果是,那么可以有多个同名的视频。如何处理?如何存储网站的视频?

+0

/videos/username/uploaded_vid? – freshbm

+0

将视频存储在自己的文件夹中(可能不是)是一个好主意,您是否有足够的空间?!? –

回答

2

一种解决方案是嵌入一个id的名义,这种或那种方式。

您可以前缀像这样

343 Video.mp4,344-Video.mp4,345如何使一个sandwich.mp4

或者你可以用一个GUID更换整个事情,将所有信息存储在数据库中。

如果你使用guid,我会亲自将所有视频存储在同一个文件夹中,以便尽可能简单地进行检索。这是一个问题,搜索引擎优化,搜索引擎喜欢文件名称,他们不喜欢名称中的ID。

获取文件名,你可以做的文件夹,并将其命名的ID,并把该视频在那里,或者你可以做一个控制器,将从ID提供文件服务。最简单的方法是使用ID作为名称的文件夹,然后在其中放入视频,还可以在其中适当地存储不同格式的相同视频。

/视频/ 343 /如何使一个sandwich.mp4,/视频/ 343 /如何使sandwich.webm

/videos/344/video.mp4,/videos/344/video.webm

也就是说,如果你有充足的存储空间,并希望使用自己的服务器,否则,你可以通过使用一个服务托管您的视频,例如节省大量的服务器成本(存储和TRAFIC) YouTube或Vimeo

+0

关于关于SEO和从名称中分离ID的说明,我会说StackOverflow经常出现在我的搜索中,并看看他们的网址 –

+0

我可能会将视频存储在服务器上,因为我不希望它可以在其他地方使用,因为其中一部分会被支付。我可能会使用Google云端引擎 –

0

你会想用某种与其关联的ID标记视频,特别是如果它们可能具有相同的名称。基本上,您将在包含上传信息(上传日期,视频类型等)的表格中存储记录。您还需要将路径存储到存储视频的文件服务器上的实际文件,然后使用该路径查看它们。

+0

我在我的数据库中有ID,但是我存储的文件夹如何?它不会允许存储具有相同名称的视频,我猜。 –

+0

用户是否可以选择更改正在上传的文件的名称?您可以随时抛出一个错误并提示他们在上传文件之前更改名称。 – TrevorGoodchild

+0

此线程似乎有一些见解: http://stackoverflow.com/questions/10356458/multiple-files-same-name – TrevorGoodchild

0

在每个用户的文件夹中上传视频或为视频指定一个随机的唯一名称(如Guid),然后在数据库中添加一行表明视频文件的实际名称和文件夹。