2017-04-25 3 views
0

GetSaSForBlobContainer (컨테이너, SharedAccessBlobPermissions.List | SharedAccessBlobPermissions.Read);Azure SAS 및 허가

public static string **GetSaSForBlobContainer**(CloudBlobContainer blobContainer, SharedAccessBlobPermissions permission) 
    { 
     var sas = blobContainer.GetSharedAccessSignature(new SharedAccessBlobPolicy() 
     { 
      Permissions = permission, 
      SharedAccessStartTime = DateTime.UtcNow.AddMinutes(-5),//SAS Start time is back by 5 minutes to take clock skewness into consideration 
      SharedAccessExpiryTime = DateTime.UtcNow.AddMinutes(15), 
     }); 
     return string.Format(CultureInfo.InvariantCulture, "{0}{1}", blobContainer.Uri, sas); 
    } 

-이를하려고하면, 내 stroge 계정 내 컨테이너 액세스 내가 Internet Explorer를 사용하여 컨테이너의 모양을 표시 private.Can입니까? 나는 실패 방울과 용기 액세스 유형 시도하는 것은 항상 :

AuthenticationFailed 서버가 요청을 인증하지 못했습니다. 인증 헤더의 값이 서명을 포함하여 올바르게 형성되었는지 확인하십시오. 요청 ID : 2c504f81-0001-00ea-3815-be7271000000 시간 : 2017-04-25T22 : 47 : 20.9382490Z 서명이 일치하지 않습니다. 38 : 15Z 2017-04-25T22 : 58 : 문자열 RL 2017-04-25T22이었다 사용되는 기호 15Z/방울/onlineeducation/$ 루트 2015년 12월 11일

하지만이 I를하려고 할 때 내가 GetSaSForBlobContainer을 만들어 내 컨테이너 액세스 유형은 Internet Explorer 및 코드)?에 대한 (무슨 일이 일어날 지 개인 경우 한 가지를 이해 해달라고),

foreach (IListBlobItem blob in blobs) 
{ 
    CloudBlockBlob blob1 = new CloudBlockBlob(blob.Uri); 
    string name = blob1.Name; 

} 

1을 모양을 볼 수 있습니다.

2) 권한이없는 개인 컨테이너를 참조한 다음 blob uri + SAS를 만듭니다. 어떻게됩니까? 내 컨테이너를 볼 수 있습니까? 또는 참조 된 blob 만 쓸 수 있습니까? (내 blob 권한은 쓰기 만 가능)

3 - 컨테이너 uri + sas - Blob uri + sas (사용 권한 읽기) => 파일 만 업로드 할 수 있습니까? Internet Explorer에서 시도 할 때 컨테이너를 볼 수 있습니까?

여기에 다른 무엇

3- ),

  • 내 컨테이너 액세스 유형은 URI 내가 어떤 permssion 및 SAS없이 continer 의 참조를 얻을 내 스토리지 개인이며, 다음 방울을 생성 r ead permssion 및 SAS.

  • 컨테이너 대한 액세스 유형은 내가 permssion 및 SAS와 용기 의 참조를 얻을 다음 읽기 permssion와 방울 URI를 만들 내 스토리지 개인하고

+1

'탐색기'가 의미하는 것을 자세히 설명해 주실 수 있습니까? Microsoft의 Azure 저장소 탐색기 또는 Internet Explorer (브라우저)를 의미합니까? –

+0

예, Internet Explorer를 지금 편집했습니다. –

답변

2

SAS 나는 이것을 시도한다. 내 콘테이너 계정은 이다. 인터넷 익스플로러로 컨테이너에 얼룩을 나열 할 수 있는가? 나는 실패가이 문제를 해결 먼저 SAS의 권한으로 List을 추가하시기 바랍니다 다음 요청 URL에 &restype=container&comp=list을 추가하려면 항상

이다 방울 및 용기 액세스 유형의 시도 . 이 문제에 대한 자세한 설명은 Azure Shared Access Signature - Signature did not match 스레드를 참조하십시오.

1)은 내가 GetSaSForBlobContainer 만들 때 한 가지를 이해 해달라고 내 컨테이너 액세스 유형은 인터넷 Explorer 및 코드)에 대한 (무슨 일이 일어날 지 개인인가?

아무 것도하지 않으면 아무 일도 일어나지 않을 것입니다. :). SAS에 포함 된 권한에 따라이 SAS URL을 소유 한 사용자는 특정 작업을 수행 할 수 있습니다. 예를 들어 List 권한을 가진 SAS를 생성하면 사용자는 해당 컨테이너의 blob 만 나열 할 수 있습니다. 그들은 blob을 다운로드 할 수 없습니다 (SAS는 Read 허가를 포함해야합니다).

2) 내가 허락없이 참조 내 개인 용기를 얻고, 다음 얼룩 URI +를 만들 SAS.Example 내가 내 컨테이너를 볼 수됩니까? 또는 난 단지 참조 덩어리를 쓸 수 있습니다 (내 방울 권한 에만 쓰기입니다) 있습니다 .. SAS는 컨테이너 전용입니다으로

아니, 당신이 당신의 컨테이너를 볼 수 없습니다. 다시 한 번, Read 권한을 포함하고 있기 때문에 blob 내용 만 읽을 수 있습니다. 얼룩을 업로드 할 수 없습니다.

3 무엇이 일어날 것, 컨테이너 URI + SAS - 물방울의 URI + SAS 난 단지 파일을 업로드 할 수> = (권한 이 읽기) 또는 내가 컨테이너를 볼 수 Internet Explorer에서 때 시도.

아니요, Read 권한으로 파일을 업로드 할 수 없습니다. 심지어는 Read 권한으로 얼룩 목록을 볼 수도 없습니다. 이를 위해서는 List 권한이 필요합니다.

# 4와 관련하여 실제로 SAS URL을 사용할 때까지는 아무런 차이가 없습니다. 첫 번째 경우에는 오류가 발생하고 두 번째 경우에는 얼룩을 볼 수 있습니다.

+0

당신의 모든 대답은 저에게 귀중합니다. 감사합니다 4 - 내 컨테이너 액세스 유형이 내 저장소에 비공개입니다 나는 어떤 permsion 및 SAS도없이 continer의 참조를 얻습니다. 그리고 나서 read permssion과 SAS로 blob URI를 생성하십시오. => 나는 여기서 읽을 수 있기 때문에 오직 BLOB에 가서 을 다운로드 할 수 있다고 이해하지만 BLOB (다운로드 가능한 BLOB)의 컨테이너를 보려고하면 컨테이너를 볼 수 없다. (나는 BLOB 권한과 SAS, 허용하지 않는 콘테이너 인 을 만들었고 SAS 없이는 볼 수 없다고 생각했다.) –