特定文件夹结构中文件的 Azure 存储

Azure storage for files in specific folder structure

目前我有一些 ftp 其中有一些文件夹和文件的深层结构。它甚至可能比根文件夹低 10 级。当我已经成功地将我的本地数据库迁移到 azure 数据库时,我还想知道是否有任何 azure ftp 我也可以用来迁移它。我知道我们有类似 Azure 存储的东西,我可以为它创建类型为 File 或 Blob 的容器——其中之一可以像 particural ftp 一样使用——我能以某种方式使用容器和 File 或 Blob 创建文件夹结构吗为此,它在那里如何运作?容器 blob 或文件是否用于此类目的?

Azure blob 支持向下 10 个级别(最多 254)。文件基本上是非分层存储的,但是每个 / 分隔符都具有目录的外观。 写一些东西来将文件移动到 azure 是相对微不足道的,据我所知还没有 ftp 功能 - 但它已经 requested. It looks like some people have already created some code for this

让我补充一下 NDJ 写的内容。所以 Azure Blob 和文件都可以满足你的目的。

如 NDJ 所述,Azure Blob 存储是一个 2 级层次结构系统。在顶部有一个 blob 容器,每个 blob 容器包含 0 个或多个文件。因此它本身不支持文件夹结构,但正如 NDJ 所提到的,您可以通过使用适当的 blob 分隔符(通常是 /)来创建子文件夹的错觉。如果将它与本地文件系统进行比较,根级别 (C:) 的目录是 blob 存储中的容器,然后文件将放在其中。因此,假设您在计算机的 C:\ 中有一个名为 images 的文件夹,它将是 blob 存储中的一个容器。现在假设您在该文件夹下有 2 个子文件夹(我们称它们为 hireslores)并且它们都包含一些文件(比如 image1.png)。当您将它们移动到 Azure Blob 存储时,容器名称将为 images,但 Blob 名称将为 hires/image1.pnglores/image1.png。一些存储浏览器会使用这个分隔符 (/) 并向您显示您的容器包含 2 个文件夹,并且在每个文件夹中您都有一个名为 image1.png 的图像,但实际上该 blob 中只有 2 个 blob容器。

Azure 文件服务与您的本地文件系统非常匹配。在顶层,您有一个 Share,每个共享都将包含目录和文件。每个目录又可以包含许多目录和文件。

如 NDJ 所述,无法 FTP 访问 Azure 存储,但有许多工具可让您将文件从本地计算机上传到 Azure 存储,其中许多工具会保留文件层次结构。您始终可以自己编写代码来上传文件。如果您决定使用 Azure 文件,您只需将文件存储共享挂载为本地计算机上的网络驱动器,然后将文件从本地计算机传输到 Azure 文件,就像将文件从一个驱动器传输到另一个驱动器一样。

更新

关于Azure Blob Storage和File Storage的区别,都是用来存储文件的。我能想到一些不同之处:

  • Azure 文件存储中的 Share 可以作为网络驱动器安装在本地 computer/Azure VM 上,而 Azure Blob 存储中的 Blob Container 则不能。因此,如果您有一个将文件写入本地文件系统的应用程序,您可以按原样使用该应用程序并利用 Azure 文件存储并将文件写入该网络驱动器,而无需对您的代码进行太多更改([=22 的典型示例=] 应用类型。
  • 您可以在 Blob Container 上设置 ACL,但不能在 Share 上执行相同操作。这使得 Azure Blob 存储非常适合为您的网站存储静态内容(图像、css、js)。要公开文件存储中的文件,您需要求助于 Shared Access Signature.
  • 您可以设置 Share 的大小(默认为 5GB),而 Blob Container 则不存在这样的设置。一个 blob 容器可以达到一个存储帐户的大小。

要了解 Azure 文件,我建议阅读以下内容:https://azure.microsoft.com/en-in/documentation/articles/storage-dotnet-how-to-use-files/

您现在可以在所有平台上使用 Storage Explorer,轻松地在任何文件夹结构中工作。