使用sFTP服务构建Azure存储blob

时间:2014-02-11 19:49:34

标签: azure sftp azure-storage-blobs azure-worker-roles

我们需要创建大型(1G-16G)行数据报告来压缩和加密它们。 我们的客户将通过sFTP使用这些报告。我们正在替换现有的实施,因此我们的客户应该透明地进行此更改。

Azure Blob服务不公开sFTP服务,因此我们需要一些方法来使用sFTP服务来覆盖它。类似于FTP to Azure Blob Storage Bridge的基于工作者角色的东西。 worker角色会将sFTP端点暴露给外部世界。 我们将为每个客户设置一个容器,并限制工作者角色的访问权限,以便保护容器免受直接访问。

我的问题是:

  1. 您如何看待这种方法?
  2. 使用辅助角色的sFTP是否可以动态缩放/缩小,同时从客户的角度保持相同的DNS名称?
  3. Azure Blob服务是否支持压缩或加密?
  4. 您是否熟悉类似于FTP到Azure Blob存储桥(更好的开源)的sFTP工作者角色?
  5. 相关问题:
    In Windows Azure: What are web role, worker role and VM role?
    Azure Architecture Design

1 个答案:

答案 0 :(得分:1)

您可以通过简单地直接通过HTTPS公开blob存储端点来实现此目的,并期望使用共享访问签名(http://www.windowsazure.com/en-us/documentation/articles/storage-dotnet-shared-access-signature-part-1/)来限制对这些blob的访问。

根据您的反馈 - 或许可以利用Linux来运行sFTP服务器并使用Java,Node或PHP Azure SDK实现相同的目标,即在预定的基础上从blob存储中提取内容,而无需工人角色(cron应该看到你的权利)。老实说,你将把你的存储使用量增加一倍(而不是那么贵),因为你要将blob从存储中拉出来并放到VM的VHD上,但这种方法可行。

我注意到你说你正在加密写入blob存储的文件 - 你可以使用PKI方法并与客户共享密钥,允许他们直接通过HTTPS提取。无论如何,sFTP似乎是:)。