2011-07-04 20 views
0

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は、適切な権限を持っているようです(私は様々な組み合わせを試してみた)と標準的な文字列は、正しいソース文字列を持っているようです。スナップショット機能を使用していません。私は他の方法をうまく使っているので、プロキシは問題ではありません。

希望、誰かが助けることができる...

多くの点、 スティーブ

答えて

0

Creating a Shared Access Signatureから:

操作は権限の与えられた一連のリソース上で許可されている次の表の詳細。

...

コンテンツ、ブロックリスト、プロパティ、および指定されたBLOBのメタデータを作成または更新します。 ブロブのコピーはサポートされていません。

+0

Hmm OK。返信いただきありがとうございます。それを見つけられなかったことを許してください。 – niiiice1

関連する問題