Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在windows azure中存储Blob可在数据库中存储其他数据,如内容类型_C#_Sql Server 2008_Azure_Azure Storage - Fatal编程技术网

C# 在windows azure中存储Blob可在数据库中存储其他数据,如内容类型

C# 在windows azure中存储Blob可在数据库中存储其他数据,如内容类型,c#,sql-server-2008,azure,azure-storage,C#,Sql Server 2008,Azure,Azure Storage,我们有一个相当大的解决方案,它使用FileStream在SQLServer2008中存储大量图像、视频和文档。我们已经开始迁移到使用windows azure blob存储来利用地理复制,这意味着将varbinary(max)列更改为相对url,我们将附加指向存储帐户的custome子域 这一切都很好,我们很乐意进行测试,但是我们目前使用varbinary数据存储文件名、扩展名和contentType 我的问题是,如果我们只是去一个相对的url,它将有文件扩展名,如果需要,我们需要存储这些额外的

我们有一个相当大的解决方案,它使用FileStream在SQLServer2008中存储大量图像、视频和文档。我们已经开始迁移到使用windows azure blob存储来利用地理复制,这意味着将varbinary(max)列更改为相对url,我们将附加指向存储帐户的custome子域

这一切都很好,我们很乐意进行测试,但是我们目前使用varbinary数据存储文件名、扩展名和contentType

我的问题是,如果我们只是去一个相对的url,它将有文件扩展名,如果需要,我们需要存储这些额外的数据吗?我们正在办公室里辩论,大家的共识似乎是保持简单,只存储Url

在这种情况下,大多数人会做什么?存储此附加数据的用途/好处是什么


非常感谢您对这一点的思考,外部意见可能是解决这一问题的唯一办法。

我倾向于将我存储在Azure中的文件的元数据(我认为可能有用)与URI一起保存在SQL中

什么是“有用的”?
这取决于你的情况。例如,我发现根据URI存储文件大小很有用(从ops/监控的角度来看),这样我就可以轻松快速地查看文件存储使用情况。我还存储文件扩展名/内容类型。基本上,我尝试在本地保存任何元数据,这样可以避免我不得不实际离开并与Azure交谈,a)提高速度/性能,b)最大限度地减少API上的点击次数(从而降低成本-只有在点击次数较多的情况下才是如此)


所以我知道,对于可能需要详细说明可用文件的任何报告需求/UI,我可以生成一些有用的元数据,而不必去Azure附近的任何地方。然后,只有在我确实需要获取文件时才实际触摸Azure。

您可能会发现有两件事很有用:每个blob都有一个“内容类型”系统属性,可以在上载blob时设置(您以后也可以更改它)。另一件事是,您还可以使用blob以键值对的形式指定自定义元数据。但是,元数据是不可搜索的。因此,如果您希望基于某些自定义属性搜索blob,最好将它们存储在blob(SQL server)之外。元数据的另一个特点是它的最大大小。如果我没弄错的话,有8KB的限制