BlobRequest.CopyFromを使用すると、404 Not Foundエラーでエラーが発生する
私は、共有アクセスシグネチャと共にプロトコル名前空間を使用してblobをコピーしようとしていますが、WebResponseは常に404 Not Foundエラーをスローします。 Get/Post/Delete/Listメソッド(パーミッションが不十分であれば404がスローされる)をうまく使いましたが、ここで答えが見つかりません。
ここで私が使用していますいくつかの簡単なコードです:
Uri uriFrom = new Uri("file://mymachine/myfile.txt");
Uri uriTo = new Uri("file://mymachine/myfile1.txt");
//get shared access signature - set all permissions for now
uriTo = GetSharedAccessSignature(uriTo, SharedAccessPermissions.Write |
SharedAccessPermissions.Read | SharedAccessPermissions.List);
//NOTE: This returns my uriTo object in the following format:
//http://mystoragespace.blob.core.windows.net/mycontainer/steve1.txt?se=2011-07-04T12:17:18Z&sr=b&sp=rwdl&sig=sxhGBkbDJpe9qn5d9AB7/d2LK1aun/2s5Bq8LAy8mis=
//get the account name
string accountName = uriTo.Host.Replace(".blob.core.windows.net", string.Empty);
//build the canonical string
StringBuilder canonicalName = new StringBuilder();
canonicalName.AppendFormat(System.Globalization.CultureInfo.InvariantCulture,
"/{0}/mycontainer{1}", accountName, uriFrom.AbsolutePath);
//NOTE: my canonical string is now "/mystoragespace/mycontainer/myfile.txt"
//get the request
var request = BlobRequest.CopyFrom(uriTo, 300, canonicalName.ToString(),
null, ConditionHeaderKind.None, null, null);
request.Proxy.Credentials = CredentialCache.DefaultNetworkCredentials;
//perform the copy operation
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
//do nothing. the file has been copied
}
だから、私のuriToは、適切な権限を持っているようです(私は様々な組み合わせを試してみた)と標準的な文字列は、正しいソース文字列を持っているようです。スナップショット機能を使用していません。私は他の方法をうまく使っているので、プロキシは問題ではありません。
希望、誰かが助けることができる...
多くの点、 スティーブ
Hmm OK。返信いただきありがとうございます。それを見つけられなかったことを許してください。 – niiiice1