【问题标题】:Azure Data Factory copy data - how do I save an http downloaded zip to blob store?Azure 数据工厂复制数据 - 如何将 http 下载的 zip 保存到 Blob 存储?
【发布时间】:2021-04-19 02:46:57
【问题描述】:

我有一个简单的复制数据活动,使用 HTTP 连接器源,Azure Blob 存储作为接收器。该文件是一个 zip 文件,因此我使用二进制数据集作为源,二进制数据集作为接收器。

数据已正确获取(我相信 - 查看传输的字节数)。但是,我无法将其保存到 Blob 商店。在这种情况下,您无需设置文件名,只需设置路径(容器/目录)。使用的文件名是我提取的文件的名称。

但是,sink 步骤中使用的文件名以反斜杠为前缀。它在源代码中不存在,我找不到删除它的方法,并且使用这样的文件名,我会失败:

“Sink”端发生故障。 ErrorCode=UserErrorFailedFileOperation,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=在路径extract/coEDW\XXXX_Data_etc.zip.上传文件失败,Source=Microsoft.DataTransfer.ClientLibrary,''Type=Microsoft.WindowsAzure.Storage .StorageException,Message=远程服务器返回错误:(404) Not Found.,Source=Microsoft.WindowsAzure.Storage,StorageExtendedMessage=指定的资源不存在。 RequestId:bfe4e2f6-501e-002e-6a21-eaf10e000000 时间:2021-01-14T02:59:24.3300081Z,,''Type=System.Net.WebException,Message=远程服务器返回错误:(404) Not Found。 ,Source=Microsoft.WindowsAzure.Storage,'

(被我屏蔽的文件名)

我确信修复很简单,但我无法弄清楚。有人可以帮忙吗?

谢谢。

【问题讨论】:

    标签: azure-data-factory


    【解决方案1】:

    您必须为 Blob 接收器添加动态文件名。

    您可以通过以下示例了解如何使用变量动态添加文件名:

    在此示例中,文件名具有日期和时间字段,以用日期和时间标记每个文件。

    让我知道这是否有效。

    【讨论】:

    • 同样的错误 - 接收器添加了一个反斜杠 失败发生在“接收器”端。 ErrorCode=UserErrorFailedFileOperation,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=在路径 extract/coEDW\XXXX_Data_December_2020.zip 上传文件失败...
    • 理想情况下 sink 本身不应该添加反斜杠,你是在 FilePath 的最后添加反斜杠吗,因为你可以看到上面有两个块,一个是添加一个文件路径,然后在一个反斜杠有一个添加动态文件名的块,请尝试检查文件路径,或者您可以将其粘贴到此处,只需更改文件夹名称并保留您添加的反斜杠原样供我检查。谢谢!
    • 我没有在任何地方添加反斜杠。我尝试了固定和动态文件名,以及没有文件名(在这种情况下使用源文件名)。但是,我确实为 Blob 存储创建了一个新的链接服务,这解决了问题。为什么,我不知道,但现在,我会继续我的工作。感谢您尝试为我解决这个问题。
    • 您的问题解决了,太好了。也许早期版本的链接服务可能有一些问题。如果我的回复对您有帮助,您可以在需要时投票:)谢谢!
    猜你喜欢
    • 2019-04-20
    • 2016-08-30
    • 2020-12-22
    • 1970-01-01
    • 2021-08-26
    • 2021-10-21
    • 2020-11-19
    • 2021-08-09
    • 2021-12-21
    相关资源
    最近更新 更多