Azure WebApp存储文件

时间:2019-04-27 14:57:43

标签: azure azure-storage azure-web-app-service

我正在更新一个系统,该系统的所有文件都存储在sql server中。

它从本地服务器到Azure Web应用。

我的问题是:

  1. 我认为我应该为这些文件使用存储Blob。那是正确的还是我应该使用的Azure内部更好的选择?
  2. 是否存在将文件从sql迁移到该blob的快速方法?
  3. 出于存储目的,我是否将文件写入blob,然后将超链接存储到该文件?
  4. 登台环境在发布时会使用生产中的最新数据进行更新,是否有办法将存储Blob迁移到其他资源组?

2 个答案:

答案 0 :(得分:1)

  1. 是的,我会使用blob。
  2. 最快的方法是快速的Powershell或cli脚本或控制台应用程序,以从数据库中提取文件并将其上传到blob。
  3. 我不会将到文件的整个超链接存储在数据库中,而只会存储路径。这样,存储帐户和容器可以是环境配置。
  4. 我建议您不要这样做……自从我们开始进行自动连续部署以来,我们发现我们没有倒退的理由,这省去了很多工作。话虽这么说,AzCopy是一种实用程序,可让您在存储帐户之间(如果需要,还有许多其他类型的源和目标)在blob的服务器端进行复制。那应该可以满足您的需求。

答案 1 :(得分:1)

要回答您的问题:

  

我认为我应该为这些文件使用存储Blob。就是它   正确的还是我应该在Azure内部有更好的选择   使用吗?

是的。 Blob存储仅用于此目的。

  

是否存在将文件从sql迁移到该blob的快速方法?

我不知道有任何自动方法可以做到这一点。您需要做的是从SQL数据库中读取二进制数据,然后从中创建一个流并上传该流。您可以使用Azure存储SDK进行上传。

  

出于存储目的,我是否将文件写入Blob,然后存储   该文件的超链接?

在通常情况下,建议使用此方法,但是考虑到您需要创建一个过渡环境,该过渡环境将是生产环境的副本(包括我假设的数据库),建议您在数据库中存储2种东西:{ {1}}和blob container name(或者您可以存储相对URL,例如blob name)。假设您将存储帐户名称保留在配置文件中的某个位置,则可以使用<container-name>/<blob-name>模式动态创建URL。

  

登台环境已使用来自的最新数据进行更新   生产发布时,有没有办法迁移存储   当他们这样做时,将blob转移到另一个资源组?

Azure Storage提供https://<account-name>.blob.core.windows.net/<container-name>/<blob-name>功能,您可以使用该功能将Blob从一个Blob容器复制到相同或不同存储帐户中的另一个Blob容器。您可以使用它来将数据从生产环境复制到暂存环境。