【发布时间】:2025-12-29 09:35:16
【问题描述】:
我想直接将 Blob 从一个存储帐户转移到 C# Web API 中的另一个存储帐户,而不是先在内存中下载?
我不希望先下载再上传到另一个存储帐户的费用。
我只想将 blob 从一个存储帐户转移到另一个存储帐户,而无需支付额外费用。
【问题讨论】:
我想直接将 Blob 从一个存储帐户转移到 C# Web API 中的另一个存储帐户,而不是先在内存中下载?
我不希望先下载再上传到另一个存储帐户的费用。
我只想将 blob 从一个存储帐户转移到另一个存储帐户,而无需支付额外费用。
【问题讨论】:
AzCopy 是您大部分时间想要的。它旨在完全满足您的需求,并且可以通过 C# 调用。这是一个full sample,用于通过 C# 将 blob 复制到另一个存储帐户。
您像往常一样使用 BlobStorage SDK,最后只需像这样复制 blob:
await TransferManager.CopyAsync(sourceBlob, destinationBlob, true, null, context, cancellationSource.Token);
完整源代码:https://github.com/azure-samples/storage-dotnet-data-movement-library-app
【讨论】:
欢迎来到 *。
值得一提的是,如果您将数据移到 Azure 区域之外,并且您的两个 Blob 存储帐户都在同一区域内,那么您只需支付带宽费用,并且不会产生出口费用*。
Azure Data Factory 是 Azure 规定的数据移动机制,默认情况下,它的数据移动机制在距离目标最近的区域运行。它有一个 c# SDK 来触发数据移动。这不是免费的,但成本很低。
或者,对于更简单的事情,可以使用 Azure Logic App,它具有用于存储帐户的连接器,但是,Azure 数据工厂制造用于数据移动。基本上,在 Azure 区域内运行的任何产品都会限制您的出口成本。
另一个非常引人注目的选项是新的存储 API,它允许在服务器端完成跨存储帐户复制:https://azure.microsoft.com/en-us/updates/new-copy-apis-for-efficient-data-copy/ 我自己没有使用过这个,因为我通常需要 Azure 数据工厂的更高级功能,但听起来确实很适合您探索更多内容。
在生产中进行任何操作之前,证明任何 PAYG 操作作为概念证明和监控成本总是值得的 - 以避免意外!
【讨论】: