2017-12-29 14 views
0

ここで何が問題になるのかよくわかりません。 Azureファイルストレージに現在保存されているイメージを表示しようとしています。私が私のブラウザで直接リンクに行くと、ちょうど良いダウンロードのようです。しかし、私がimg srcにURLを置くと、コンソールでこのエラーが発生します。ここでAzureファイルストレージ:Error 400(条件ヘッダーはサポートされていません)

は、私は現在、ファイルへのURLを取得しています方法です:

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; 
} 

それは「条件ヘッダーがサポートされていない」ことで、正確に何を意味するのでしょうか?

+0

質問を編集し、コンソールに表示されるエラーの実際のスクリーンショットのような詳細を含めることはできますか?また、ファイルの実際のSAS URLを共有することもできますか? –

答えて

1

"条件ヘッダーはサポートされていません"とはどういう意味ですか?

私のテストに基づいて、上記のコードに問題はありません。 AzureファイルストレージGet File APIには、指定された条件付きヘッダーはありませんがサポートされています。したがって、の要求の場合、条件ヘッダーの場合、Azureファイルサーバーでは受け付けません。場合によってはブラウザにif conditionヘッダーが追加されるため、ブラウザ側で発生することがあります。

enter image description here

Azureのブロブが許容される場合は、Azureのブロブを使用しようとしていてください。その後、期待どおりに動作します。条件ヘッダーをサポートするget blob api

この操作では、条件付きヘッダーを使用して、指定した条件が満たされた場合にのみBLOBを読み取ることもできます。詳細については、「Blobサービス操作の条件付きヘッダーの指定」を参照してください。

関連する問題