0

私はAzureのコンテナのためのAzure CDNのエンドポイントを作成する必要があります。私はそうするために以下のコードを使用しています。紺碧の容器のための紺碧のcdnのエンドポイントを作成する

Endpoint endpoint = new Endpoint() { 
       IsHttpAllowed = true, 
       IsHttpsAllowed = true, 
       Location = this.config.ResourceLocation, 
       Origins = new List<DeepCreatedOrigin> { new DeepCreatedOrigin(containerName, string.Format(STORAGE_URL, storageAccountName)) }, 
       OriginPath = "/" + containerName,      
      }; 
      await this.cdnManagementClient.Endpoints.CreateAsync(this.config.ResourceGroupName, storageAccountName, containerName, endpoint); 

私が提供するすべての情報は正確であり、エンドポイントは正常に作成されています。しかし、私はそれの中の任意のブロブにアクセスしようとするとき。 InvalidUrlエラーを出しています。

しかし、奇妙なことですが、同じ値をポータルから使用して同じエンドポイントを作成すると、ブロブにアクセスしてダウンロードすることができます。

誰でも私のコードで何が間違っているのか教えてください。余分なパラメータを渡す必要がありますか?

答えて

1

私の知る限り、コードでストレージCDNを作成する場合は、OriginHostHeaderの値をストレージアカウントのURLとして設定する必要があります。

詳細は、あなたは以下のコードを参照できます。

// Create CDN client 
      CdnManagementClient cdn = new CdnManagementClient(new TokenCredentials(token)) 
      { SubscriptionId = subscriptionId }; 
      //ListProfilesAndEndpoints(cdn); 
      Endpoint e1 = new Endpoint() 
      { 
       // OptimizationType = "storage", 
       Origins = new List<DeepCreatedOrigin>() { new DeepCreatedOrigin("{yourstoragename}-blob-core-windows-net", "{yourstoragename}.blob.core.windows.net") }, 
       OriginHostHeader = "{yourstoragename}.blob.core.windows.net", 
       IsHttpAllowed = true, 
       IsHttpsAllowed = true, 
       [email protected]"/foo2", 
       Location = "EastAsia" 
     }; 

     cdn.Endpoints.Create(resourcegroup, profilename, enpointname, e1); 

以外にも、私はあなたが直接URLでBLOBファイルにアクセスするためのSASトークンを生成する可能性が示唆されました。

+0

こんにちはBrando、ありがとう、たくさんの男。 OriginAuthHeaderパラメータを追加した後、私の問題が解決したようです。私はこれを答えとしてマークしています。 しかし、あなたは私に恵まれますか?エンドポイントを作成する際にこのパラメータが必要であると述べたところで、この情報のソースを教えてください。再度、感謝します。 –

+0

申し訳ありませんが、私はあなたに正しい情報を伝えることができませんでした。このパラメータは、ポータルの[エンポジットの追加]ダイアログに従って作成します。 OriginHostHeaderパラメータが必要なので、自分の側でテストします。 –

関連する問題