Tridion CD OData Webサービスを使用してバイナリコンテンツをどのように使用できますか?


4

私たちは私がで立ち往生しています、C#クライアントを使用してbinarycontentを消費したいと思い、

http://localhost:82/odata.svc/BinaryContents(BinaryId=159,PublicationId=4,Varia‌ntId='Y29uZmlnLWJvb3RzdHJhcA==')/$ value

を以下のようにHTTPのURLを使用してのODataサービスを使用してバイナリバリアントのダウンロードについての議論SOのリンクを発見しました上記のHTTP OData要求を同等のC#LINQクエリに変換し、C#経由でBinaryVariantを消費します。ここで

は、私がこれまでに行ったことある

BinaryContent content = (from s in cds.BinaryContents 
     where s.BinaryId == 1415 && s.PublicationId == 3 && s.VariantId == "ZGlzdC1jb21wb25lbnRzLmh0bWw=" 
     select s).FirstOrDefault(); 

しかしBinaryContentクラスは、バイト[]またはデータストリームを返すためにメソッド/プロパティを持っていません。

おかげで、 ラジェッシュ

2

私はちょうどLINQのAPIを使用してこれを行うための方法を発見していないが、あなたはSystem.Net.WebClientオブジェクトを使用して、バイト[]としてファイルをダウンロードすることができます。

はこれを試してください:あなたは確保したODataサービスを使用している場合にのみ行「webClient.Headers.Add」の部分を必要とする

string url = cds.BinaryContents.RequestUri + "(BinaryId=1415 ,PublicationId=3,VariantId='ZGlzdC1jb21wb25lbnRzLmh0bWw=')/$value"; 
WebClient webClient = new WebClient(); 
webClient.Headers.Add("Authorization", "OAuth " + OdataUtilities.GetAccessToken()); 
byte[] bytes = webClient.DownloadData(url); 

注意を。 OdataUtilities.GetAccessToken()は、リクエストのトークンを取得するために使用する単なる方法です。

  0

クリスおかげで、私は試してみます。 しかし、その外観からは、HTTP Odata URLを介してbyte []に​​アクセスできるので、byte []プロパティはBinaryContentクラスで使用できますが、現在はそのクラスのパブリックプロパティではない可能性があります。 04 9月. 152015-09-04 05:15:45