Azure 将 blob 复制到另一个帐户 : invalid blob type

标签 azure copy azure-blob-storage

我想将 12GB 页 blob 从一个存储帐户复制到另一个存储帐户。目前双方都是“公共(public)容器”。但它不起作用:HTTP/1.1 409 blob 类型对此操作无效。

以相同的方式但在同一存储帐户中复制它不会出现错误。

我错过了什么?

谢谢!

//编辑:这就是我尝试将 blob.dat 从 account1 复制到 account2 (casablanca lib)的方式:

http_client client(L"https://account2.blob.core.windows.net");

http_request request(methods::PUT);

request.headers().add(L"Authorization", L"SharedKey account2:*************************************");
request.headers().add(L"x-ms-copy-source", L"http://account1.blob.core.windows.net/dir/blob.dat");
request.headers().add(L"x-ms-date", L"Sat, 23 Nov 2013 16:50:00 GMT"); // I'm keeping this updated
request.headers().add(L"x-ms-version", L"2012-02-12");

request.set_request_uri(L"/dir/blob.dat");

auto ret = client.request(request).then([](http_response response)
{
    std::wcout << response.status_code() << std::endl << response.to_string() << std::endl;
});

存储帐户是几天前创建的,因此没有任何限制。 此外,目标目录为空(account2/dir/blob.dat 不存在)。

//编辑2: 我做了更多测试并发现了这一点:上传一个新的页面 blob(几 MB)然后将其复制到另一个存储帐户是有效的! 然后,我尝试重命名无法复制的 12GB 页 blob(从 mydisk.vhd 重命名为 test.dat),突然间,复制到另一个存储也能正常工作了! 但下一个问题是:将目标存储帐户中的 test.dat 重命名回 mydisk.vhd 后,我无法从中创建磁盘(错误如“不是有效的 vhd 文件”)。但复制已经完成(x-ms-copy-status:成功)。 现在可能是什么问题? (哦我忘了:源 mydisk.vhd 租约状态在复制之前是“已解锁”)

//编辑3: 好吧,看来问题已经解决了......即使使用原始的 mydisk.vhd,我也无法再次创建磁盘(无效的 vhd)。我不知道为什么,因为我没有改变它,但我在 Xbox 发布的一天创建了它,这一切都很慢,所以也许那里出了问题。现在,当我创建新的虚拟机时,我可以毫无问题地将 .vhd 复制到另一个存储(删除磁盘后)。

最佳答案

关于Azure 将 blob 复制到另一个帐户 : invalid blob type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20164849/

相关文章:

android - 通过 Azure 通知中心上的 GCM 发送高优先级消息

适用于所有存储库的 Azure DevOps 通用分支策略构建管道

list - 如何在TCL中将列表的某些部分复制到新列表?

kubernetes - 调用 kubectl cp 命令时如何使用 tar 命令选项

c# - 从 URL 将图像上传到 Azure Blob 存储

azure - 如何从azure容器应用程序获取日志?

java - 在 Java 中复制 HashMap

python - Azure存储: Blob: Python: Get indicator if there are blobs at all

javascript - Azure 存储 blob 库将 blob 下载到本地计算机

node.js - Azure Function 应用程序 key 经常更改