2013-02-07 2 views
3

나는 다음과 같은 코드를 사용하여 게시 된 바이너리의 바이너리 데이터를 읽으려고 해요 :BinaryFactory는 파일 시스템의 바이너리에서 작동합니까?

Tridion.ContentDelivery.DynamicContent.BinaryFactory factory = new BinaryFactory(); 
BinaryData binaryData = factory.GetBinary(uri.ToString()); 

이 좋은 일을, 내가 바이너리가 아닌 파일 시스템에 저장되어있는 환경에서 배포까지 중개인 데이터베이스. 이제 BinaryData는 파일이 존재한다고하더라도 항상 null입니다.

BinaryFactory를 이와 같이 사용하려면 바이너리를 데이터베이스에 저장해야합니까? 또는 나는 무엇인가 놓치고 있냐?

답변

4

방금 ​​SDL Tridion 2011 SP1 HR1 환경에서 몇 가지 테스트를 실행했으며 내 바이너리가 파일 시스템에있는 경우 BinaryData이 채워 졌는지 (null이 아니며 값이 포함되어 있는지) 확인할 수 있습니다. 귀하의 코드 샘플을 사용하고 방금 내 웹 사이트의 페이지에 사용되는 유효한 이진 URI를 추가했습니다. 나는 우리 환경 사이에 어떤 것이 다른지 확신 할 수 없다. 내 생각에 BinaryMeta이 브로커 데이터베이스에 배포되었는지 확인하는 것이 좋을 것이다. (이것이 다르다면 버그라고 생각한다). 다음과 같이

cd_storage.xml 노드의 itemTypes의 노드는 다음과 같습니다 바이너리를 제외하고

<ItemTypes defaultStorageId="defaultdb" cached="true"> 
    <Item typeMapping="Binary" storageId="defaultFile" cached="true"/> 
</ItemTypes> 

그래서 모든 것이 DB에 있습니다.

사용중인 SDL Tridion의 버전이 무엇인지 잘 모르겠지만 (영향을 미칠지 모르겠다), 최근에는 파일 시스템에 메타 데이터를 저장하는 것이 2011 SP1에서 더 이상 지원되지 않는다고 들었습니다.

+0

크리스. 나는 그걸 지원한다고보고 할 것 같아. – Quirijn

+0

당신이 옳았다. 문제는 fs 스토리지와 아무 관련이 없다. – Quirijn