- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在尝试将 CloudPageBlob 复制到位于不同 Azure 订阅中的存储帐户时遇到了问题。由于某种原因,当我调用复制时,我不断收到 404 错误:
CloudBlobContainer destContainer;
CloudBlob sourceBlob;
string destBlobName;
var sourcePageBlob = sourceBlob as CloudPageBlob;
if (sourcePageBlob != null)
{
var destBlob = destContainer.GetPageBlobReference(destBlobName);
await destBlob.StartCopyAsync(sourcePageBlob, AccessCondition.GenerateIfExistsCondition(), AccessCondition.GenerateEmptyCondition(), new BlobRequestOptions(), new OperationContext());
return destBlob;
}
调用返回{“远程服务器返回错误:(404)未找到。”}
但是,如果我调用 sourcePageBlob.Exists()
它会返回 true
。
最佳答案
拥有一个私有(private)源容器是问题所在。您需要获取一个共享访问 URI,该 URI 将允许目标存储帐户访问源存储帐户。这篇博文对此进行了解释:https://alexandrebrisebois.wordpress.com/2013/06/25/copy-blobs-with-startcopyfromblob-and-track-its-progression-using-copystate/
CloudBlobContainer destContainer;
CloudBlob sourceBlob;
string destBlobName;
var sharedAccessUri = GetShareAccessUri(sourceBlob);
var sourcePageBlob = sourceBlob as CloudPageBlob;
if (sourcePageBlob != null)
{
var destBlob = destContainer.GetPageBlobReference(destBlobName);
await destBlob.StartCopyAsync(new Uri(sharedAccessUri));
return destBlob;
}
private string GetShareAccessUri(CloudBlob sourceBlob)
{
int validMins = 300;
var policy = new SharedAccessBlobPolicy
{
Permissions = SharedAccessBlobPermissions.Read,
SharedAccessStartTime = null,
SharedAccessExpiryTime = DateTimeOffset.Now.AddMinutes(validMins)
};
var sas = sourceBlob.GetSharedAccessSignature(policy);
return sourceBlob.Uri.AbsoluteUri + sas;
}
关于azure - CloudPageBlob StartCopyAsync 失败,状态为 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41579670/
来自documentation函数 CloudBlobClient.StartCopyAsync() 它说 Initiates an asynchronous operation to start c
有多种方法可以复制 Azure Blob 存储 block 。 StartCopy 有同步和异步版本。还有一个 BeginStartCopy,它也具有完成回调。 BeginStartCopy 方法明确
我在尝试将 CloudPageBlob 复制到位于不同 Azure 订阅中的存储帐户时遇到了问题。由于某种原因,当我调用复制时,我不断收到 404 错误: CloudBlobContainer des
我有一些 C# 代码可将 blob 从一个存储帐户复制到另一个存储帐户。我注意到,当我调用 CloudBlob.StartCopyAsync 时,目标 Blob 的 CopyState.Status
我是一名优秀的程序员,十分优秀!