Sql 是否将文件上载到Windows Azure中的VarBinaryMax字段?

Sql 是否将文件上载到Windows Azure中的VarBinaryMax字段?,sql,azure,Sql,Azure,我非常困惑,所以我在WindowsAzure中创建了一个SQL数据库,创建了一个“视频表”,其中的“视频文件”列为“varbinary(max)”,因为我想将视频文件上载到该字段中,但是Azure不提供“上载”选项,比如说,PHPMyAdmin可以点击“浏览”直接将视频上载到该字段中。有谁能指导我如何将文件上传到WindowsAzure SQL数据库中,以便将其作为varbinary类型读取?可以在Azure管理门户中完成吗?或者它需要某种外部程序/服务吗?要回答您的问题,直接将文件上载到SQL

我非常困惑,所以我在WindowsAzure中创建了一个SQL数据库,创建了一个“视频表”,其中的“视频文件”列为“varbinary(max)”,因为我想将视频文件上载到该字段中,但是Azure不提供“上载”选项,比如说,PHPMyAdmin可以点击“浏览”直接将视频上载到该字段中。有谁能指导我如何将文件上传到WindowsAzure SQL数据库中,以便将其作为varbinary类型读取?可以在Azure管理门户中完成吗?或者它需要某种外部程序/服务吗?

要回答您的问题,直接将文件上载到SQL Azure数据库的功能不存在。这是你必须自己做的事情

有人能告诉我如何将文件上传到Windows中吗 Azure SQL数据库,以便可以将其读取为varbinary类型

在SQLServer中搜索上传文件,您会发现很多关于如何上传文件的示例。以该链接为例:

可以在Azure管理门户中完成吗?还是需要某种外部程序/服务

否。Azure管理门户中不存在此功能。如上所述,您需要编写一些代码来实现这一点

有点离题的评论:

我建议您不要将图像文件保存在数据库中,而是将它们保存在Blob存储中,并将Blob的URL存储在表中。我可以从中看到一些优势:

  • 与SQL数据库相比,Azure Blob存储要便宜得多。如果您在数据库中存储视频文件(或者换句话说,大文件),那么最终将获得大数据库,从而支付更多的钱
  • 从数据库中读取这些大数据时,会阻塞数据库,这将影响应用程序的性能

感谢您的回复Gaurav,我遇到了您之前发布的链接,我不确定如何调整代码以适应Azure SQL server参数,该代码假设您有一个正常的本地SQL server存储为SDF,而不是存储在云中。根据您的第二个建议,我确实将该文件存储为BLOB,但是,在我的Windows Phone 8应用程序中,我始终存在无法找到从相关Azure SQL表和列中“调用”或“解析”URL的方法的问题,因为我不知道如何编写这个的语法,这已经是一个问题了相当长的一段时间了,即使在谷歌搜索和询问了很多次之后。URL需要从相关列中“调用”/“解析”,并作为MediaElement显示在应用程序中,你能帮我一下吗?我没有使用过移动应用程序,所以我可能错了,但我很快在MSDN上查找了
MediaElement
文档,发现它有一个名为
PosterSource
的属性,它带有URI。现在假设存储图像的blob容器具有
Public
ACL,那么您可以简单地将bloburl设置为该PosterSource的值。如果将blob容器的ACL设置为
Private
,事情可能会变得有点复杂。然后,您需要在blob上创建一个
共享访问签名
URL,该URL具有
读取
权限,并将该URL用作PosterSource的值。是的,我刚查过,不幸的是,这只适用于Windows Phone 8.1或更高版本,我只有一个Windows Phone 8.0,它使用“source”属性,直接链接到应用程序存储中的文件,如果在文件系统中存储为原始文件,则通过直接URL链接。