我在存储帐户的blob中有一个文件列表,我需要将其移动到另一个存储帐户。有没有办法专门选择blob文件并仅将选定的子集移动到不同的存储帐户?如果是这样,我该怎么做?
编辑:将更新需要移动的blob列表,并且需要持续运行功能过程
答案 0 :(得分:0)
You can implement it with a Recurrence Logic App:
答案 1 :(得分:0)
如果您想使用Azure功能,我建议的最基本的方法是基于这个问题实际上是关于I / O而不是计算的问题。因此,虽然有一些模式可以用来扩展Azure功能的工作,但对于这类问题可能没有多大意义。
这里最简单的方法是使用基于timer trigger的单一函数。您可以根据需要安排此功能的运行。它的工作是执行你的sproc,枚举结果,然后通过Azure Blob Storage SDK中的TransferManager
排队每个结果进行复制。
如果您已经不熟悉TransferManager
类,则会负责跟踪和优化I / O操作的并发吞吐量。您可能希望创建一个TransferContext
来表示该函数正在处理的一批工作,以便您可以跟踪进度,处理故障,处理覆盖情况等。您将使用CopyAsync
方法,如果您不熟悉此API,则此方法上有一个名为isServiceCopy
的参数。由于您在两个Azure存储服务帐户之间进行复制,因此您肯定希望利用此帐户,以便它是纯服务器< - >服务器副本,并且I / O不具备通过运行函数实例的服务器;你的功能最终只是复制的协调者。
现在,就像我说的那样,这是我建议的最基本的方法。还有其他事情需要考虑,例如在面对任何失败时保持幂等性。例如,如果您调用的存储过程仅返回一次特定的blob URI(例如,SQL服务器中的穷人队列),并且您的Azure功能由于某种原因而失败,那么您将失去该工作。我真的需要了解更多有关它的详细信息来规定更耐用的替代方案,但是您肯定希望改变这种方法,以便将实际复制与存储过程的执行分离,以减少失败的可能性那里。