【问题标题】:Copy file from remote server using SFTP straight to Azure blob storage使用 SFTP 将文件从远程服务器直接复制到 Azure Blob 存储
【发布时间】:2015-01-16 05:38:45
【问题描述】:
我有一个带有一堆静态文件的远程服务器(在 Azure 之外)。我在 Azure 中创建了一个辅助角色,我想使用辅助角色使用 SFTP 将这些文件从我的远程服务器直接传输到我的 blob 存储帐户(无需在本地复制到辅助角色)。是否有关于如何做到这一点的既定工作流程/最佳实践?
我能找到的最接近的是这个问题:
Copy file from URL to Azure BLOB
但是,要使用 StartCopyFromBlob,我需要有一个可公开访问的 URL,但事实并非如此。
其中一些文件可能 >100mb 或 >500mb,这是否会引发任何问题?
谢谢。
【问题讨论】:
标签:
azure
azure-worker-roles
azure-blob-storage
【解决方案2】:
最简单的方法是直接在远程服务器上安装 Azure CLI。然后可以使用 Azure CLI 将这些文件直接传输到 Azure Blob 存储。无需 SFTP(Azure Blob 存储不公开 SFTP 接口)或辅助角色(您的远程服务器不通过 Web 接口提供文件)。
如果这不是一个选项,另一种方法是执行@Mark Volders 的建议,并在 Azure 上配置 SFTP 服务器。然后,您可以将文件从远程服务器推送到 SFTP 服务器。然后,SFTP 服务器将使用 Azure CLI 将文件推送到 Azure Blob 存储,并在成功后删除本地文件。
对于 SFTP 服务器,一个障碍是确保在 SFTP 客户端完成文件传输后立即将文件复制到 Azure Blob 存储。一种常见的方法是使用Incron,这是一个侦听文件事件(在本例中为IN_CLOSE_WRITE 事件)的服务。 Azure Marketplace 上有一个产品SFTP Gateway 可以完成所有这些工作(披露:我是该产品的开发人员之一),因此您无需花时间从头开始实施。
此外,>500mb 的文件大小对于 Azure CLI 或 SFTP 来说都不是问题。