2017-03-27 7 views
1

개인 Azure Blob을 가지고 있습니다. Azure File을 BLOB에 복사하려고합니다. 둘 다 동일한 저장소 계정에 있습니다. Azure 파일을 Azure Blob에 복사 할 때 Azure SAS를 사용하는 방법

나는 물방울에 푸른 파일을 복사하려고

, 내가 받고 있어요 (404)

예를 들어, : await destinationBlob.StartCopyAsync(sourceCloudFile);

가정 : Azure 파일에 Shared Access Signature을 제공해야하기 때문입니다.

그래서 SAS를 사용하여 Blob에 파일을 복사하는 방법을 모르겠습니다.

좋아요 - 토큰이 있습니다. 지금 무엇을하고 있습니까?

답변

2

SharedAccessFilePolicy에서 권한을 변경하십시오. 파일을 복사하려면 허가는 Read이어야하며 List이 아니어야합니다.

var policy = new Microsoft.WindowsAzure.Storage.File.SharedAccessFilePolicy() 
{ 
    Permissions = Microsoft.WindowsAzure.Storage.File.SharedAccessFilePermissions.Read, 
    SharedAccessExpiryTime = new DateTimeOffset(DateTime.UtcNow.AddDays(1) 
}; 

당신이 SAS를 얻으면, 당신은 단순히 파일의 SAS의 URL을 생성하고 CloudBlockBlob 객체에 StartCopy를 부를 것이다.

destinationBlob.Properties.ContentType = "image/jpg"; 
await destinationBlob.SetPropertiesAsync(); 
+0

아 :

var sasToken = source.CloudFile.GetSharedAccessSignature(policy); var fileSasUri = new Uri(string.Format("{0}{1}", source.CloudFile.Uri.AbsoluteUri, sasToken)); var copyId = await destinationBlob.StartCopyAsync(fileSasUri); 

대상 덩어리의 내용 유형을 설정하려면, 복사가 완료 된 후에 당신이 뭔가를 할 수 있습니다! ta (또한 나쁜 사본/붙여 넣기이었다). 하지만 다음은 어떻게해야합니까? 나는이 문자열 URL을 가지고 ... 그래서 어떻게 사용합니까? –

+0

더 많은 코드를 추가하겠습니다 .... –

+0

고맙습니다! : 하트 : –