2017-12-29 22 views
0

여기에 무슨 문제가 있는지 잘 모르겠습니다. 현재 Azure File Storage에 저장된 이미지를 표시하려고합니다. 브라우저에서 직접 링크로 이동하면 다운로드가 잘된 것 같습니다. 하지만 img src에 URL을 넣으면 콘솔에이 오류가 표시됩니다.Azure 파일 저장 : Error 400 (조건 헤더가 지원되지 않습니다.)

정확히 그것이 의미하는 무엇을
public static string GetFile(Models.Core.Document file, string friendlyFileName = null) 
{ 
    CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString")); 
    CloudFileClient fileClient = storageAccount.CreateCloudFileClient(); 
    CloudFileShare share = fileClient.GetShareReference("organizations"); 
    CloudFileDirectory fileDirectory = share.GetRootDirectoryReference().GetDirectoryReference("Org_" + file.OrgId); 

    // Get the file 
    var azureFile = (CloudFile)fileDirectory.ListFilesAndDirectories().First(f => f.Uri.ToString() == file.FilePath); 

    // Set up access policy so that the file can be viewed 
    var sasConstraints = new SharedAccessFilePolicy(); 
    sasConstraints.SharedAccessStartTime = DateTime.UtcNow.AddMinutes(-5); 
    sasConstraints.SharedAccessExpiryTime = DateTime.UtcNow.AddMinutes(15); 
    sasConstraints.Permissions = SharedAccessFilePermissions.Read; 

    // Access token 
    var sasFileToken = string.Empty; 
    if (friendlyFileName != null){ 
     sasFileToken = azureFile.GetSharedAccessSignature(sasConstraints, new SharedAccessFileHeaders() 
     { 
      ContentDisposition = "attachment; filename=" + friendlyFileName 
     }); 
    } 
    else 
    { 
     sasFileToken = azureFile.GetSharedAccessSignature(sasConstraints); 
    } 

    // Return url to file with appended token 
    return azureFile.Uri + sasFileToken; 
} 

"조건 헤더가 지원되지 않습니다"여기

내가 현재 파일의 URL을 검색하고 어떻게?

+0

질문을 편집하고 콘솔에 표시된 오류의 실제 스크린 샷과 같은 세부 정보를 포함 할 수 있습니까? 또한 파일의 실제 SAS URL을 공유 할 수 있습니까? –

답변

1

"조건 머리글은 지원되지 않습니다"라는 것이 정확히 무엇입니까?

테스트 결과에 따르면 언급 한 코드에는 문제가 없습니다. Azure 파일 저장소 Get File API에 따르면 을 지원하는 지정된 조건부 헤더가 없습니다. 따라서 의 요청 인 경우 조건 헤더 인 경우 Azure 파일 서버에서 허용하지 않습니다. 어떤 경우에는 브라우저가 if condition 헤더를 추가하기 때문에 브라우저 측에서 가끔 발생합니다.

푸른 블랍이 허용하는 경우

enter image description here

의 푸른 방울을 사용하는 시도를하시기 바랍니다. 그러면 예상대로 작동합니다. 조건 헤더를 지원하는 get blob api.

이 조작은 지정된 조건이 충족 될 경우에만 조건부 헤더를 사용하여 blob을 읽는 것을 지원합니다. 자세한 내용은 Blob 서비스 작업을위한 조건부 헤더 지정을 참조하십시오.