我想将12GB页面blob从一个存储帐户复制到另一个存储帐户。目前,双方都是“公共集装箱”。但它不起作用: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不存在)。
// EDIT2: 我做了更多的测试并发现了这一点:上传一个新页面blob(几MB)然后将其复制到另一个存储帐户工作! 然后我尝试重命名我无法复制的12GB页面blob(从mydisk.vhd重命名为test.dat),突然复制到另一个存储也工作了! 但下一个问题是:在将test.dat重命名为目标存储帐户中的mydisk.vhd之后,我无法从中创建磁盘(错误如“不是有效的vhd文件”)。但副本已经完成(x-ms-copy-status:success)。 现在可能出现什么问题? (哦,我忘记了:在复制之前,源mydisk.vhd租约状态是“解锁”)
// EDIT3: 好吧,似乎问题已经解决了......即使使用原始的mydisk.vhd我也无法再次创建磁盘(无效的vhd)。我不知道为什么我没有改变它,但是我在xbox的一个发布日创建它,它都很慢,所以可能出现了问题。现在,当我创建一个新VM时,我可以将.vhd复制到另一个存储器而没有问题(删除磁盘后)。
答案 0 :(得分:0)
我建议使用AzCopy - 交叉帐户复制Blob。 看看这里: http://blogs.msdn.com/b/windowsazurestorage/archive/2013/04/01/azcopy-using-cross-account-copy-blob.aspx