Сообщение о преобразовании DataWeave преобразует 8192 байта при развертывании в Cloudhub

Я получаю запрос JSON с атрибутом 3, и одним из атрибутов является содержимое изображения, которое является base64 в строковом формате. После получения этого запроса я создаю вложение Salesforce с помощью коннектора Salesforce.

Теперь, когда я тестирую это через мою локальную Anypoint Studio, все в порядке, однако после развертывания в Cloudhub fileContent (содержимое изображения) обрезается до 8192 байтов и создает вложение как поврежденное.

Я вижу, что API получает контент, поскольку длина содержимого сообщения составляет 38820 (как локальное, так и Cloudhub), и похоже, что сообщение теряется после преобразования сообщения, а код выглядит следующим образом:

        <processor-chain doc:name="Processor Chain">
             <dw:transform-message doc:name="Transform Message">
                 <dw:set-payload><![CDATA[%dw 1.0
 %output application/java
 ---
 {
     accountId : payload.accountId,
     name : 'MyProfilePicture',
     ContentType: payload.contentType,
     fileContent : payload.fileContent
 }]]></dw:set-payload>
             </dw:transform-message>

             <set-session-variable variableName="accountId" value="#[payload.accountId]" doc:name="Session Variable - accountId"/>
             <set-session-variable variableName="contentType" value="#[payload.ContentType]" doc:name="Session Variable - contentType"/>
             <logger message="payload.fileContent Before Conversion size #[payload.fileContent.length()], data:#[payload.fileContent] " level="INFO" doc:name="Logger"/>
             <set-session-variable variableName="fileContent" value="#[(org.apache.commons.codec.binary.Base64.decodeBase64(payload.fileContent))]" mimeType="binary/octet-stream" doc:name="Session Variable - fileContent"/>
             <dw:transform-message metadata:id="1676949a-75ba-4e51-82ac-b5788a8e87dc" doc:name="Transform Message">
                 <dw:input-payload/>
                 <dw:set-payload><![CDATA[%dw 1.0
 %output application/java
 ---
 [{
     Name: 'MyProfilePicture',
     ParentId: sessionVars.accountId,
     ContentType: sessionVars.contentType,
     Body: sessionVars.fileContent
 }]]]></dw:set-payload>
             </dw:transform-message>
             <logger message="Payload after Transform Message: #[payload]" level="INFO" doc:name="Logger"/>
             <sfdc:create config-ref="Salesforce__Cfg" type="Attachment" doc:name="Salesforce">
                 <sfdc:objects ref="#[payload]"/>
             </sfdc:create>
         </processor-chain>

Может ли кто-нибудь помочь в этом? почему при развертывании в Cloudhub он обрабатывает только 8192 байта?

Спасибо,

Томас


person Thomas T    schedule 22.08.2016    source источник


Ответы (1)


Это можно исправить, переключившись на устаревший DataMapper для огромных преобразований base64.

person Sam    schedule 02.11.2016