将映像插入Azure存储中的varbinary(max)列到Azure SQL数据库

时间:2018-04-23 15:01:16

标签: sql azure unity3d storage bulk

正如标题所示,我尝试从Azure Bulk Storage添加图像并将其放入Azure SQL数据库中的VarBinary(Max)列。

我在Unity中构建一个应用程序,每个用户都有一个徽标。此徽标特定于每个用户。我将一个Web请求发送到PHP代码,然后PHP代码从特定数据库请求服务器获取我需要的信息。所以我试图找到一种方法来确保每个用户(表中的行)都附有一个徽标。我想如果将图像存储在数据库中是不正确的,那么是否可以对存储在徽标列中的URL进行Web请求,然后从该URL中绘制图像并在应用程序中使用它?如果是这样,有人知道我会怎么做吗?

我知道批量存储提供了图像的URL。此外,如果可能,我想将其添加到当前创建的行中。谢谢!

1 个答案:

答案 0 :(得分:0)

假设: 您已将用户图标作为Blob存储在Azure Storge帐户中,并且具有Blob级别的匿名读取访问权限 Blob网址为https://my-az.blob.core.windows.net/usericon/staff icon.png (用您的特定Azure租户名称替换“ my-az”) 您有两个单独的表-UserDets和UserImg。最好将图像数据放在单独的表中。

在SSMS中执行此命令-

CREATE EXTERNAL DATA SOURCE MyUserAzureBlobStorage
WITH ( TYPE = BLOB_STORAGE, LOCATION = 'https://my-az.blob.core.windows.net/usericon');

然后将图像插入VARBINARY列-

Insert into UserImg (UserId, UserImg) 
(Select 1, BulkColumn FROM OPENROWSET( 
BULK 'staff icon.png', 
DATA_SOURCE = 'MyUserAzureBlobStorage', SINGLE_BLOB) AS ImageFile); 

如果您使用凭据进行Blob访问,则还有一些其他步骤。但这在当前实例中不是必需的。

相关问题