2016-11-10 7 views
0

私は、Java用のSDKを使用して、SASを作成してblobにアクセスしています。 これはコードです:Azure java:指定された署名済み識別子のSAS識別子を見つけることができません

<Error> 
<Code>AuthenticationFailed</Code> 
<Message> 
Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature. RequestId:f1f169d2-0001-003f-115a-3be1d6000000 Time:2016-11-10T13:57:14.6192554Z 
</Message> 
<AuthenticationErrorDetail> 
SAS identifier cannot be found for specified signed identifier 
</AuthenticationErrorDetail> 
</Error> 

私は同じブロブのためのNETで同じことをやっている:

SharedAccessBlobPolicy policy = new SharedAccessBlobPolicy(); 
policy.setPermissionsFromString("r"); 
Calendar date = Calendar.getInstance(); 
Date expire = new Date(date.getTimeInMillis() + (expirationMinutes * 60000)); 
Date start = new Date(date.getTimeInMillis()); 
policy.setSharedAccessExpiryTime(expire); 
policy.setSharedAccessStartTime(start); 
return blob.getUri().toString()+"?"+blob.generateSharedAccessSignature(policy, externalFileName); 

しかし、私はこのエラーを取得するブロブにアクセスするためのURLを使用しようとすると、結果のURL(作品が)1は、私がここに来ることに異なっている:

は(Javaの)動作しません。

/mycontainer/privadoPrueba/cat1.jpg?sig=FFLVk%2FPViHBZhH1JIW6wBbWiJ0%2Bgz0U8wjFzgRoytNo%3D&st=2016-11-10T13%3A55%3A06Z&se=2016-11-10T14%3A06%3A06Z&sv=2015-07-08&si=privadoPrueba%2Fcat1.jpg&sp=r&sr=b 

作品(NET):

/mycontainer/privadoPrueba/cat1.jpg?sv=2015-07-08&sr=b&sig=WyiJWltZFj1AkkzST6mo2NjBF1tRSXxrkMP5LEAGJNk%3D&st=2016-11-10T14%3A05%3A41Z&se=2016-11-10T14%3A16%3A41Z&sp=r 

どうすればこの問題を解決できますか?

+0

を、あなたはどの1作品を伝えることができますか? –

+0

もう1つ、質問に追加します – moondaisy

答えて

2

SASトークンを調べるだけで、ファイル名でポリシーを指定しています。これはおそらくあなたがやりたいことではなく、.NET SASトークンに含まれていません。

問題は、私は推測するここにある:

blob.generateSharedAccessSignature(policy, externalFileName); 

APIは、.NETに似ている場合は、2番目のパラメータは、おそらくポリシー名です。

は、代わりにこれを試してください:あなたは、上記の2つのSAS URLの

blob.generateSharedAccessSignature(policy, null); 
+0

ありがとう、それは問題でした。 – moondaisy

関連する問題