2017-02-10 4 views
0

개인 푸른 BLOB 저장소에 사용자를 리디렉션하는 것이 가능 HttpResponseMessage 개인 푸른 물방울 저장

asp.net

를 사용하여 API 개발로 리디렉션? SAS 키나 푸른 BLOB SDK를 사용하여이 작업을 수행 할 수 있습니까?

var response = Request.CreateResponse(HttpStatusCode.Moved); 
response.Headers.Location = new Uri(bloburl); 
return response; 

는 URL에 키를 넣어 개인 BLOB을 액세스 할 수 있습니다 : 나는 이런 식으로 뭔가를하고 싶은 예를 들어

? 분명히 나는 ​​마스터 키를 넣고 싶지 않다.

답변

1

사용자를 개인용 푸른 색 얼룩 저장소로 리디렉션 할 수 있습니까? SAS 키 또는 하늘색 얼룩 SDK를 사용하여이 작업을 수행 할 수 있습니까?

예, 전적으로 사용자를 개인용 BLOB로 리디렉션 할 수 있습니다. 적어도 Read 권한이있는 Shared Access Signature (SAS)을 만들고 해당 SAS 토큰을 BLOB URL에 추가하고 해당 URL로 리디렉션해야합니다.

코드는 다음과 같을 것이다 :

 var cred = new StorageCredentials(accountName, accountKey); 
     var account = new CloudStorageAccount(cred, true); 
     var client = account.CreateCloudBlobClient(); 
     var container = client.GetContainerReference("container-name"); 
     var blob = container.GetBlockBlobReference("blob-name"); 
     var sasToken = blob.GetSharedAccessSignature(new SharedAccessBlobPolicy() 
     { 
      Permissions = SharedAccessBlobPermissions.Read, 
      SharedAccessExpiryTime = DateTime.UtcNow.AddHours(1)//Assuming you want the link to expire after 1 hour 
     }); 
     var blobUrl = string.Format("{0}{1}", blob.Uri.AbsoluteUri, sasToken); 
     var response = Request.CreateResponse(HttpStatusCode.Moved); 
     response.Headers.Location = new Uri(bloburl); 
     return response; 
+0

이 내가 필요로 그냥 뭐 좋은 덕분이다. 나는 BLOB URL에 SAS 키를 추가 할 수 있다는 것을 몰랐다. 구현을 시도한 후 다시보고하겠습니다. – Jaked222

+0

빠른 질문 : 모든 BLOB 요청에 대해 성능 측면에서 새로운 SAS 키를 만드는 것이 단점입니까? 또한 응용 프로그램이 BLOB 링크를 통해 단일 이미지를 다운로드하기 위해이 API를 사용하기 때문에 각 링크가 1 분 내에 만료되는 것이 좋을 것이라고 가정합니다. 동일한 BLOB에 대한 두 번째 연속 요청이 새로운 SAS 키를 생성한다고 상상해보십시오. – Jaked222

+0

'모든 BLOB 요청에 대해 성능 측면에서 새로운 SAS 키를 만드는 데 단점이 있습니까? '- 내가 생각할 수있는 것은 아니다. SAS 키의 생성은 네트워크 호출을하지 않으므로 네트워크 또는 IO 오버 헤드가 없습니다. –

관련 문제